2

私は過去数週間前にこの問題に遭遇しました、そして私はまだ理由を理解することができません。

BizTalkメッセージを受信して​​処理し、最終的にファイルに書き込むBizTalkオーケストレーションがあります。簡単にするために、たとえば、私たちの目標は、メッセージ(実際には調査です)を取得して、そのままフォルダーに保存することです。メッセージをキャッチするためのパブリック受信ポートと、結果をディスクに書き出すための送信ポートを作成しました。

プロジェクトを正常に展開し、IISに正常に公開しました。IISでWCFサービスを確認し、Framework4.0を使用するように設定しました。関連するすべての受信ポートと送信ポートを設定し、BizTalk管理コンソールからアプリケーションを正常に起動しました。(受信場所は、wcfサービスを公開したときに自動的に作成されました。送信場所は、コンピューターのフォルダーにあるタイプFILEです)

IISのDefaultSiteから、WCFを確認できました。ただし、試してみるhttp://localhost/TestSurvey/TestSurvey_Orchestration_1_getSurveyPort.svc, と、次のエラーが発生しました。

Server Error in '/TestSurvey' Application.
--------------------------------------------------------------------------------

Login failed for user 'Domain\ComputerName$'. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Login failed for user 'ACAD1\DENBIZDEV$'.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[SqlException (0x80131904): Login failed for user 'Domain\ComputeName$'.]

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   Microsoft.BizTalk.TransportProxy.Interop.IBTTransportProxy.RegisterIsolatedReceiver(String url, IBTTransportConfig callback) +0
   Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfIsolatedReceiver`2.RegisterIsolatedReceiver(Uri uri) +1028
   Microsoft.BizTalk.Adapter.Wcf.Runtime.WebServiceHostFactory`3.CreateServiceHost(String constructorString, Uri[] baseAddresses) +363
   System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +1413
   System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +50
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +1172

[ServiceActivationException: The service '/TestSurvey/TestSurvey_Orchestration_1_getSurveyPort.svc' cannot be activated due to an exception during compilation.  The exception message is: Exception has been thrown by the target of an invocation..]
   System.Runtime.AsyncResult.End(IAsyncResult result) +901424
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +178638
   System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +107

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 

私の質問は、BizTalkがログインしようとしていたのは何ですか?Domain \ComputerName$は間違いなくユーザーではありません。オーケストレーションからデータベースにアクセスしようとしたことはありません。VS2010からすばやくダーティなwcfサービステストを作成してIISに公開し、wcfサービステストを使用するための単純なクライアントを正常に作成したので、IISは正しくセットアップされたと思います。wcfサービステストを直接作成したときに、同じ問題は発生しませんでした。

ヘルプやヒントは大歓迎です!

編集

私はこれをなんとか修正しました。BizTalkによって作成されたため、Web構成ではありませんでした。特別なアプリプールを作成し、それを使用するようにアプリケーションを結び付ける必要がありました。アプリプールでは、BizTalkが使用しているカスタムクレデンシャルを使用する必要があります。組み込みのクレデンシャルを使用すると、私が経験した問題が発生しました。私の新人エラー!BizTalkログイン資格情報が使用されると、すべてがスムーズに進みました。

4

1 に答える 1

4

SQL例外をスローしているデータベースは、BizTalkデータベースの1つであり、おそらく管理またはSSODBです。

このエラーは、アプリプールIDまたはWebサイトのセキュリティ設定に関係なく、IISのセットアップが原因であることがほぼ確実です。

何が起こっているのかというと、IISがサービスを初めてコンパイルするときにサービスを呼び出すとき、これを行うには明らかにBizTalkデータベースの1つにアクセスする必要がありますが、この呼び出しは何らかの理由で認証されません。

これは、アプリプールユーザーがBizTalk分離ホストユーザーグループのメンバーである必要があるためである可能性があります(これは、BizTalkの設定方法によっては異なる名前で呼ばれる場合があります。

于 2012-12-28T08:32:27.823 に答える