Biztalk encountered the 'soapexceptioninternal SOAP Processing failure' error when publishing the web service.

Source: Internet
Author: User
Tags biztalk

1. Project Description

Biztalk2006 is used to perform a simple test business flow in the vs2005 development environment. It is mainly used to test the publishing of a web service using biztalk, which accepts requests sent by users, then, extract the relevant data from the SQL server database through the SQL adapter as required by the user, and finally return the data to the user as the response of web services.

The business process is as follows:

In the figure, Port_2 is a two-way receiving port, which needs to be published as web services. Port_1 is a two-way sending port created using the SQL adapter wizard, which uses a stored procedure, the parameter has only one Rows, indicating the number of data Rows to be obtained. The stored procedure returns the data of the number of required Rows.

The corresponding Schema is also very simple:

Compile and deploy the Biztalk project.

In the biztalk manager, add the physical sending port to the application, point to the corresponding database connection, specify the returned Schema type, and bind Port_1 logical port.

Finally, use the biztalk web services release Wizard to set the web services release for Port_2 port. Follow the instructions in the Wizard step by step. One step is to select whether to assign the web services to the receiving location of an application. Here, select the receiving location of the application, in this way, the web services to be generated are bound to the Port_2 port.

Start the application in biztalk manager.

Ii. symptom

Create a winform application, reference the web services released in the above process, reference and generate this web services proxy class in the project, and have a method called Operation_1, this method is the operation name defined by Port_2 port.

Place a button on the interface. In the click event of this button, create a web services proxy class instance, create a parameter instance of the Operation_1 method, and then call the Operation_1 method, receives the return value of the Operation_1 method.

In the preceding test scenario, a breakpoint is set for the code that calls the Operation_1 method, the winform application is debugged and executed, and the program encounters a breakpoint interruption when calling the Operation_1 method, after one-step debugging, the program executes the Operation_1 method and actually calls the web services operation. An error is returned: Internal Processing of SOAP failed (SoapException: Internal SOAP Processing Failure ). The following error message is displayed in the Event Viewer:

L user 'nt AUTHORITY \ NETWORK service' logon fails.

L An error occurred while attempting to connect to the "BizTalkMgmtDb" SQL Server database on "JINJZ2003. Error: "unable to open the database you requested" BizTalkMgmtDb ". Logon Failed ."
(An attempt to connect to "BizTalkMgmtDb" SQL Server database on server "Server" failed with error: "Cannot open database requested in login 'biztalkmgmtdb'. Login fails .".)

L The message engine cannot register the "SOAP" adapter for the receiving location "/BiztalkSqlSP_Proxy/BiztalkSqlSP_Orchestration_1_Port_2.asmx. Verify that the receiving location exists and the independent adapter runs under an account that can access the BizTalk database.
(The Messaging Engine failed to register the adapter for "SOAP" for the receive location "/VirtualDirectory/Name. asmx ". please verify that the receive location is valid, and that the isolated adapter runs under an account that has access to the BizTalk databases .)

Iii. Solution Process

According to the error prompt, I went to Microsoft's support website to check whether the error was described and handled, the reason is that the account of the application pool corresponding to web services is not a member of the BizTalk Isolated Host Users Group. The BizTalk Isolated Host Users Group has the permission to access the 'biztalkmgmtdb' database. This account must also be a member of the IIS_WPG group.

Check that the application pool corresponding to the web services in IIS is defaappapppool, the account corresponding to defaappapppool is network service, and there is a network service account in the IIS_WPG group, however, the BizTalk Isolated Host Users group does not have a network service account. Therefore, a network service account is added to the BizTalk Isolated Host Users Group. Test, the fault persists, and the error message still appears in the Event Viewer: network service cannot log on to the 'biztalkmgmtdb' database. It's a little strange.

Change the account corresponding to defaappapppool to "IWAM _ machine name", add "IWAM _ machine name" to the BizTalk Isolated Host Users Group and IIS_WPG group, and restart IIS, then perform the test. There are still errors, but this error prompt is not the original "SoapException: Internal SOAP Processing Failure", changed to "System. Web. Services. Protocols. SoapException: the server cannot process the request. ---> System. InvalidOperationException: a temporary class cannot be generated (result = 1 ). \ Nerror CS2001: the source file "C: \ WINDOWS \ TEMP \ zyobqxbr.0.cs ()" cannot be found ()"

It seems that the database access permission problem has been solved, and the event viewer does not have an error record for data access. Check the Microsoft support website for the newly generated error and find the relevant content. The account of the application pool corresponding to web services needs to have read and write permissions on the % systemroot % \ Temp folder, because Web service (. asmx) the JIT file will compile the DLL file in the % systemroot % \ Temp folder. If the account of the application pool does not have the read/write permission for the % systemroot % \ Temp folder, you cannot generate related dll files.

Set the read and write permissions for the "IWAM _ machine name" account to read and write the % systemroot % \ Temp folder, and then test, OK, success, and the expected results returned by the Operation_1 method.

Reference:

1. BizTalk Server 2004 and Web Services: http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/BTS2004WP5cab05ab.mspx? Mfr = true

2. You cannot call an orchestration that is exposed as a Web service on a server that is running BizTalk Server 2004: http://support.microsoft.com /? Kbid = 910295

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.