Thursday, November 03, 2005

.NET Web Services on Windows 2003

The past couple of days have been enlightening. I discovered after much digging that a web service that we have which runs perfectly fine on a Windows 2000 server, would not work when running on Windows 2003 server. I would attempt to make a SOAP call to our web service, and I would get the following SOAP response:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>Server was unable to process request. --&gt; File or assembly name ssowmn-3.dll, or one of its dependencies, was not found.</faultstring>
            <detail/>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

It turns out that there are several things that can cause this, but the most prevalent is that the ASPNET user and the NETWORK SERVICE user need to have "modify" access to the Windows Temp directory. Basically, the problem is that when ASP.NET performs the serialization needed for the web service, it uses the temp directory. Thus, if it can't write to the directory, then it fails.

No comments: