I am having some issues with an ASP.Net Deployment of an Accpac interfacing dll. We have Sage Accpac 5.4A setup on a shared folder of a Windows 2003 server. Our data is also hosted on this server via Pervasive 9 DB. Our Accountants access Accpac via the Sage Accpac 500 ERP (Version 5.4A Service Pack 2), using an ODBC datasource (Pervasive Client 9.5) and shared data. I have set this up on the web server exactly the same, and I can login and use Accpac on the web server.
My custom AccpacService components are based on VB macros, which I converted to C# .Net (v3.5) (many thanks to this forum for getting the components working right). My AccpacService uses the Accpac.Advantage and Accpac.Advantage.Types .Net libraries. I have NUnit tests for the custom AccpacService, and integration tests for my business logic that uses the AccpacService (such as for looking up a AP Vendor, or looking up an GL account code). When running the AccpacService and integration tests on the web server (via NUnit.exe), all the tests pass, so I know my component works fine.
However, when trying to use the business logic via the ASP.Net web application (not a web service), I get an error:
ACCPAC.Advantage.SessionException ---> System.Runtime.InteropServices.COMException (0xE0000004): Invalid Signon Information.
Make sure you supply the correct User ID and Password.
at AccpacCOMSVR.AccpacSvrSessionClass.Open(String UserIdentifier, String Password, String DataBase, DateTime SessionDate, Int32 Flags, String Reserved, Boolean CheckStatus, Byte[]& SessionInfo)
at ACCPAC.Advantage.Server.Session.Open(String userID, String password, String orgID, DateTime sessionDate, Int32 flags, Boolean checkStatus)
--- End of inner exception stack trace ---
at ACCPAC.Advantage.Server.Session.Open(String userID, String password, String orgID, DateTime sessionDate, Int32 flags, Boolean checkStatus)
at ACCPAC.Advantage.Session.Open(String userID, String password, String companyID, DateTime sessionDate, Int32 flags)
at AccpacService.ImplNet.AccpacServiceBaseNet.Connect(String dsnName, String username, String password)
at Worker.Impl.VendorWorker.GetMissingVendorsInAccpac(IList`1 vendors, Company company)
Ths sign on information for Accpac is EXACTLY the same as my NUnit tests, so I don't know what gives. The ASP.Net application uses domain authentication (i.e., BASIC), and the App Pool is running under Local System. I have granted read permission to the appropriate user groups and the ASPNet account on Accpac Directories. The web.config file looks like:
<authentication mode="Windows"/>
<authorization>
<deny users="?"/>
</authorization>
<identity impersonate="true"/>
If anyone can offer some advise, please go for it.
My custom AccpacService components are based on VB macros, which I converted to C# .Net (v3.5) (many thanks to this forum for getting the components working right). My AccpacService uses the Accpac.Advantage and Accpac.Advantage.Types .Net libraries. I have NUnit tests for the custom AccpacService, and integration tests for my business logic that uses the AccpacService (such as for looking up a AP Vendor, or looking up an GL account code). When running the AccpacService and integration tests on the web server (via NUnit.exe), all the tests pass, so I know my component works fine.
However, when trying to use the business logic via the ASP.Net web application (not a web service), I get an error:
ACCPAC.Advantage.SessionException ---> System.Runtime.InteropServices.COMException (0xE0000004): Invalid Signon Information.
Make sure you supply the correct User ID and Password.
at AccpacCOMSVR.AccpacSvrSessionClass.Open(String UserIdentifier, String Password, String DataBase, DateTime SessionDate, Int32 Flags, String Reserved, Boolean CheckStatus, Byte[]& SessionInfo)
at ACCPAC.Advantage.Server.Session.Open(String userID, String password, String orgID, DateTime sessionDate, Int32 flags, Boolean checkStatus)
--- End of inner exception stack trace ---
at ACCPAC.Advantage.Server.Session.Open(String userID, String password, String orgID, DateTime sessionDate, Int32 flags, Boolean checkStatus)
at ACCPAC.Advantage.Session.Open(String userID, String password, String companyID, DateTime sessionDate, Int32 flags)
at AccpacService.ImplNet.AccpacServiceBaseNet.Connect(String dsnName, String username, String password)
at Worker.Impl.VendorWorker.GetMissingVendorsInAccpac(IList`1 vendors, Company company)
Ths sign on information for Accpac is EXACTLY the same as my NUnit tests, so I don't know what gives. The ASP.Net application uses domain authentication (i.e., BASIC), and the App Pool is running under Local System. I have granted read permission to the appropriate user groups and the ASPNet account on Accpac Directories. The web.config file looks like:
<authentication mode="Windows"/>
<authorization>
<deny users="?"/>
</authorization>
<identity impersonate="true"/>
If anyone can offer some advise, please go for it.