views:

299

answers:

1

We have a web service that uses COM to talk to some DLLs. The data files that the DLL functions rely on are on a unix share, and we must specify the data file location when initializing the COM calls. We have installed SFU 3.5 on our Windows Server 2003 server. We can't use a mapped drive because IIS is running as a service (or can we?). Using UNC doesn't seem to work either: As a logged in user, it fails the first time you enter the location, and then works. I don't know how to test it from the IIS perspective, as all we're getting from the DLL is an 'Invalid data file location' error. The unix share is open [no user/password required].

Perhaps the problem isn't with IIS at all, but rather the DLLs have to access to the UNC or mapped drive? After all, it is the DLL that actually accesses the data files, not IIS or the web service executable.

I know very little about COM, DCOM, COM+. Pulling up Component Services, I can't find the COM objects we are using. [But I can find them using the MS OLEVIEW under 'Automation Objects'].

What are my options here?

A: 

A web service is loaded into aspnet_wp.exe process that is run under ASPNET user. You can attach to this process and debug given you have the sources and the code is compiled with debug information (.pdb file produced).

You should be able to use the UNC file shares given they have proper access restrictions. Since the web service is run under a local user you may have hard time settings access restrictions on the file server because it has no idea of how to validate the credentials. In this case you can create a COM+ application for hosting your COM components and run it under a separate account.

sharptooth