我創建了一個包含兩個業務流程的BizTalk應用程序,每個我公開的作爲SOAP服務公開的方法之一。每種方法在SQL Server中運行特定的存儲過程並返回結果。它在開發和測試中都工作得很好,但是當我投入生產時,我遇到了一個道路顛簸。在我們的測試環境中,存儲過程的所有權是DBO。但在生產中,事實並非如此。這是[味精]。所以程序是[數據庫]。[msg]。[stored_procedure]而不是[database]。[dbo]。[stored_procedure],所以我得到一個錯誤。BizTalk 2010 WCF定製適配器和數據庫對象所有權
我試着改變SOAP Action Header,但是我得到一個錯誤,說明(正確)存儲過程SP_XXXX1,例如,不存在。
Error Description: Microsoft.ServiceModel.Channels.Common.MetadataException: Object [dbo].[SP_XXXX1] of type StoredProcedure does not exist
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Operation Name="SP_XXXX1" Action="Procedure/dbo/SP_XXXX1" />
<Operation Name="SP_XXXX2" Action="Procedure/dbo/SP_XXXX2" />
</BtsActionMapping>
我試圖改變「DBO」上面「味精」,但我也得到一個錯誤:
Error Description: Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: The start element with name "SP_XXXX1" and namespace " http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo " was unexpected. Please ensure that your input XML conforms to the schema for the operation.
我需要重新生成的一切,再次運行該向導來創建模式等,然後再次測試它在開發環境中重新創建環境?
我沒有這樣做,因爲我認爲這將很容易在發送端口配置。
謝謝你的回答彼得。我將重新生成一切並更新應用程序模式。我已將開發計算機上的架構更改爲MSG,而不是DBO,因此可以進行測試。我希望它更簡單,但我想它確實有道理。正如你所指出的,SQL中不同模式中的對象是不同的。 :) –