fiogf49gjkf0d Thanks Raul.
Here is our case. It worked well before our system was upgraded from Lan 7.0.1 to 7.5.3
On the SalesLogix Server: (1) SalesLogix Server has been installed and upgraded to 7.5.3 (2) Web Service resides on the SalesLogix Server The web service was developed by asp.net (C# and Visual Studio 2005). The web service is a Windows-Authentication-based one. The web service includes some functions, one of which is as follows:
[WebService(Namespace = "SLXIntegration")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class IntegrationWithSLX : System.Web.Services.WebService
{
…… //Something else
[WebMethod]
public object GetValueFromSLX(string strSql, string strConn)
{
object objReturnValue;
OleDbConnection connTemp = new OleDbConnection(strConn);
OleDbCommand cmdTemp = new OleDbCommand(strSql, connTemp);
connTemp.Open();
objReturnValue = cmdTemp.ExecuteScalar();
if (objReturnValue is System.DBNull)
{ objReturnValue = ""; }
if (connTemp.State == ConnectionState.Open)
{ connTemp.Close(); }
connTemp = null; cmdTemp = null;
return objReturnValue;
}
…… //Something else
}
On the other separate Web Server: The Proxy of the web service was deployed to a separate web server. On the web server, there is our asp.net application and we have some aspx pages which manipulate the SalesLogix database through the Web Service on the SLX server. One consuming snippet is as follows:
…… //Something else
this.strConnectionStringToSLX = WebConfigurationManager.AppSettings["strConSLX"]; protected WSCCIntegrationWithSLX.IntegrationWithSLX wstest; //WSCCIntegrationWithSLX.IntegrationWithSLX -- the Proxy class
System.Net.ServicePointManager.CertificatePolicy = new CareerCruisingWeb.CCLib.SLXIntegration.TrustAllCertificatePolicy(); //For SSL validation
wstest = new WSCCIntegrationWithSLX.IntegrationWithSLX();
System.Net.NetworkCredential userCredential = new System.Net.NetworkCredential("xxxxxx", "yyyyyy"); //Please see Note (3)
wstest.Credentials = userCredential;
wstest.PreAuthenticate = true;
object objLicenseType = wstest.GetValueFromSLX(this.GetSLXSQLSelectLicenseType(), this.strConnectionStringToSLX); //This is the clause where page crashes //The error message is: Server was unable to process request. ---> Unable to initialize data dictionary.
…… //Something else
Note: (1) this.strConnectionStringToSLX In the Web.config file, there is a key:
<add key="strConSLX" value="Provider=SLXOLEDB.1; Password=vvvvvv; Persist Security Info=True;User ID=uuuuuu;Initial Catalog=SALESLOGIX;Data Source=SLXS_SERVER_NAME"/>
User ID=uuuuuu and Password=vvvvvv are the Username and Password of a SLX account.
(2) this.GetSLXSQLSelectLicenseType() private string GetSLXSQLSelectLicenseType() { StringBuilder tempStringBuilder = new StringBuilder(); tempStringBuilder.Append("SELECT LICENSETYPE FROM ACCWEBACCESS WHERE SCHOOLID = "); tempStringBuilder.Append(SchoolID);
return tempStringBuilder.ToString(); }
ACCWEBACCESS is an added custom SLX table.
(3) System.Net.NetworkCredential userCredential = new System.Net.NetworkCredential("xxxxxx", "yyyyyy"); xxxxxx/yyyyyy is the Username/Password of the system of SLX server on which the web service resides. It had been the member of Administrators Group and used to do Windows-Authentication when get into the IIS of SLX Server.
It looks like the problem is here. After the SLX was upgraded from 7.0.1 to 7.5.3, something conflict between SalesLogix OLE DB Provider/IIS/WebDll? and the Windows-Authentication account.
Any thoughts? |