Fax server API version does not support the requested operation

G

Guest

Hi all,

I am trying to send a fax programatically using the FAXCOMEx.DLL with .Net
(C# and COM Interop).
I have built a little class to encapsulate the logic for sending the fax -
not much to it really. This works nicely when I include this class in a
Windows Forms project and call it from a button's event handler.

Then, when I include the class - as a component in our business components
DLL, and call it from a web service, the "submit" call fails, with the error
"Fax server API version does not support the requested operation". (Yet it
works from the WinForms app with exactly the same parameters, for server
name, etc.)

The code looks like this;
FaxDocument faxDoc = new FaxDocumentClass();

faxDoc.CoverPageType = FAX_COVERPAGE_TYPE_ENUM.fcptLOCAL;
faxDoc.CoverPage = coverPageName;
faxDoc.Recipients.Add(FaxNumber,RecipientName);
faxDoc.Subject = Subject;
faxDoc.Note = Notes;
faxDoc.Body = FileName;

faxDoc.Submit(faxServerName);

I've tried using impersonation to run this code under various "alias"
including the system admin! Same error :-( I've checked all the permission
on the fax server - which FYI is a Windows 2003 server running SBS 2003.

I have a unit test, calling and External facing web service, which calls a
web service behind the firewall, which calls this code. All this code is
running on my development machine at the moment, but once deployed will run
on two different servers.

If someone could shed some light on what this error may mean, and possibly
why it would run in one solution, and not the other, I would be most thankful.

Thanks in anticipation.

Stuart.
 
G

Guest

Further Information:
This ONLY occurs when the code is called from a web service. If the code is
 
G

Guest

Should anyone be interested - MS tech support offered this answer...

Change the user specified in "processModel" tag of machine.config to a
higher privileged user.

This indeed did fix the "Fax server API version does not support the
requested operation" problem but obviously will not be the final answer. I
am inthe process of finding out what privileges have to change for the
machine user that runs the ASPNET processes, or what the minimum requirements
are for a domain user that is to be used for this purpose. I'll post when I
find out.
 
Joined
Mar 8, 2007
Messages
2
Reaction score
0
I think I figured this one out.... I read that for IIS 6, the process model section is essential ignored and it used the settings in the IIS app pool. Something to that effect.

Anyway, all I did was created a new app pool in IIS, had it run under a domain account that had privileges to fax, set my WS application to use that app pool... and it worked. Didn't have to add the processModel section, or even impersonation. Then I'll probably just secure the web service with header credentials or something.

Oh, and make sure you add the account you run the app pool under to the IIS_WPG group on the web server or the web service won't run.

Good luck!
 
Last edited:
Joined
Mar 8, 2007
Messages
2
Reaction score
0
Okay, so I did have to set the virtual directory to Windows Auth and use impersonation to the same account that the IIS app pool is running under.


What happened is that when I had the virtual running under anonymous and no impersonation, the fax would only go out if I was terminal serviced in the server as that user when I was calling the web service from my XP client. If I logged out of the terminal session to the server and then ran the web server from my client, it would throw this error:

800710D8 Operation failed


So for the heck of it I put it back to windows auth and set the impersonation back up to the same user as I'm running my app pool under and now it works even when I'm not terminal serviced in to the server. For now at least... :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top