Hi Brian,<br><br>Could you provide the sequence of the requests, a mapfile example, that can be used to reproduce this problem?<br>What do you mean by &quot;configure them independently&quot;? Different application pool for each service type?<br>
<br>Best regards,<br><br>Tamas<br><br><br><br><div class="gmail_quote">2011/3/8 Brian Poteat <span dir="ltr">&lt;<a href="mailto:Poteat.Brian@geoeye.com">Poteat.Brian@geoeye.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div link="blue" vlink="purple" lang="EN-US"><div><p class="MsoNormal">I have a very strange issue while using MapScript from within some web service projects. I have different projects/applications for different services – one for each of WCF, WMS, WFS, and WMTS – so we can configure them independently. MapScript requests work fine for all of them separately but if I access MapScript from one and then another, one of them will not work correctly anymore. The requests will return success (result == 0) and the format returned is correct but the data is either null or an incorrect image. It doesn’t seem to be a threading issue since I can bombard any one of the services with asynchronous requests and they are handled fine and the problems don’t necessarily come while using the different applications at the same time – just one then the other.</p>
<p class="MsoNormal"> </p><p class="MsoNormal">I am using a support project for making the MS requests that is referenced by each application (though I tried putting the code directly in each app with the same results). Below is a simplified version of the helper utility I am using. Is there anything that stands out as being an obvious issue? My endpoint applications simply get the query parameters from the url request and pass them as the requestParams argument with the appropriate map file.</p>
<p class="MsoNormal"> </p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: blue;">namespace</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> MapScript</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">{</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">         </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">public</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">class</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">MapScriptResponse</span><span style="font-size: 10pt; font-family: Consolas; color: black;"></span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">         {</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">public</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> Format { </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">get</span><span style="font-size: 10pt; font-family: Consolas; color: black;">; </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">set</span><span style="font-size: 10pt; font-family: Consolas; color: black;">; }</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">public</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">byte</span><span style="font-size: 10pt; font-family: Consolas; color: black;">[] Data { </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">get</span><span style="font-size: 10pt; font-family: Consolas; color: black;">; </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">set</span><span style="font-size: 10pt; font-family: Consolas; color: black;">; }</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">public</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> ErrorString { </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">get</span><span style="font-size: 10pt; font-family: Consolas; color: black;">; </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">set</span><span style="font-size: 10pt; font-family: Consolas; color: black;">; }</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">public</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">DateTime</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> LastModified { </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">get</span><span style="font-size: 10pt; font-family: Consolas; color: black;">; </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">set</span><span style="font-size: 10pt; font-family: Consolas; color: black;">; }</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">         }</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;"> </span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">         </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">public</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">class</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">MapScriptUtilities</span><span style="font-size: 10pt; font-family: Consolas; color: black;"></span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">         {</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">///</span><span style="font-size: 10pt; font-family: Consolas; color: green;"> </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">&lt;summary&gt;</span><span style="font-size: 10pt; font-family: Consolas; color: black;"></span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">///</span><span style="font-size: 10pt; font-family: Consolas; color: green;"> Execute a service request to mapserver through mapscript</span><span style="font-size: 10pt; font-family: Consolas; color: black;"></span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">///</span><span style="font-size: 10pt; font-family: Consolas; color: green;"> </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">&lt;/summary&gt;</span><span style="font-size: 10pt; font-family: Consolas; color: black;"></span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                  </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">///</span><span style="font-size: 10pt; font-family: Consolas; color: green;"> </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">&lt;param name=&quot;mapFile&quot;&gt;</span><span style="font-size: 10pt; font-family: Consolas; color: green;">Physical path to the map file on which to make the request</span><span style="font-size: 10pt; font-family: Consolas; color: gray;">&lt;/param&gt;</span><span style="font-size: 10pt; font-family: Consolas; color: black;"></span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">///</span><span style="font-size: 10pt; font-family: Consolas; color: green;"> </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">&lt;param name=&quot;requestParams&quot;&gt;</span><span style="font-size: 10pt; font-family: Consolas; color: green;">List of request parameters</span><span style="font-size: 10pt; font-family: Consolas; color: gray;">&lt;/param&gt;</span><span style="font-size: 10pt; font-family: Consolas; color: black;"></span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">///</span><span style="font-size: 10pt; font-family: Consolas; color: green;"> </span><span style="font-size: 10pt; font-family: Consolas; color: gray;">&lt;returns&gt;</span><span style="font-size: 10pt; font-family: Consolas; color: green;">The response from mapscript.</span><span style="font-size: 10pt; font-family: Consolas; color: gray;">&lt;/returns&gt;</span><span style="font-size: 10pt; font-family: Consolas; color: black;"></span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                  </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">public</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">static</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">MapScriptResponse</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> ServiceRequest(</span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> mapFile, </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">Dictionary</span><span style="font-size: 10pt; font-family: Consolas; color: black;">&lt;</span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;">, </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;">&gt; requestParams)</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 {</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">MapScriptResponse</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> response = </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">new</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">MapScriptResponse</span><span style="font-size: 10pt; font-family: Consolas; color: black;">();</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">mapObj</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> map = </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">new</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">mapObj</span><span style="font-size: 10pt; font-family: Consolas; color: black;">(mapFile);</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">OWSRequest</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> owsRequest = </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">new</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">OWSRequest</span><span style="font-size: 10pt; font-family: Consolas; color: black;">();</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;"> </span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">Dictionary</span><span style="font-size: 10pt; font-family: Consolas; color: black;">&lt;</span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;">, </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;">&gt;.</span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">Enumerator</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> en = requestParams.GetEnumerator();</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> paramName = </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(163, 21, 21);">&quot;&quot;</span><span style="font-size: 10pt; font-family: Consolas; color: black;">;</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">string</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> paramValue = </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(163, 21, 21);">&quot;&quot;</span><span style="font-size: 10pt; font-family: Consolas; color: black;">;</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">while</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> (en.MoveNext())</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          {</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">                                   paramName = en.Current.Key;</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                                   paramValue = en.Current.Value;</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                                   owsRequest.setParameter(paramName, paramValue);</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          }</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;"> </span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">mapscript</span><span style="font-size: 10pt; font-family: Consolas; color: black;">.msIO_installStdoutToBuffer();</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">int</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> resultCode = map.OWSDispatch(owsRequest);</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">if</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> (resultCode == 0)</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          {</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">                                   response.Format = </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">mapscript</span><span style="font-size: 10pt; font-family: Consolas; color: black;">.msIO_stripStdoutBufferContentType();</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                                   response.Data = </span><span style="font-size: 10pt; font-family: Consolas; color: rgb(43, 145, 175);">mapscript</span><span style="font-size: 10pt; font-family: Consolas; color: black;">.msIO_getStdoutBufferBytes();</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          }</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">          </span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                          </span><span style="font-size: 10pt; font-family: Consolas; color: blue;">return</span><span style="font-size: 10pt; font-family: Consolas; color: black;"> response;</span></p>
<p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">                 }</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;">
<span style="font-size: 10pt; font-family: Consolas; color: black;">         }</span></p><p class="MsoNormal" style="background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: Consolas; color: black;">}</span></p>
<p class="MsoNormal"> </p><p class="MsoNormal">Any help would be greatly appreciated.</p><p class="MsoNormal">Brian</p></div></div><br>_______________________________________________<br>
mapserver-users mailing list<br>
<a href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/mapserver-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/mapserver-users</a><br>
<br></blockquote></div><br><div style="visibility: hidden; left: -5000px; position: absolute; z-index: 9999; padding: 0px; margin-left: 0px; margin-top: 0px; overflow: hidden; word-wrap: break-word; color: black; font-size: 10px; text-align: left; line-height: 130%;" id="avg_ls_inline_popup">
</div>