0

今週は、新しいSharePointソリューションを使用して本番環境に移行しました。ステージング環境での開発とテストに1年近く費やした後、次のエラーが発生したのは初めてです。

エラー:動作する場合もあれば、404でクラッシュする場合もあります

SharePointソリューションではNintexワークフローを使用していますが、ここではNintexが取引を妨げるものではないと思います。このワークフロー(およびその他のワークフロー)から、SharePointファームの_vti_binでホストされているカスタムasmxWebサービスを呼び出しています。Webサービス内のすべては、昇格された特権で実行されます。ワークフローがWebサービスを呼び出しているとき、Webサービスは一部のユーザーに対してランダムに404エラーを返します。リソースが見つかりません。ここで欠落しているリソースは、Webサービスへのasmxパスです。

興味深いことに、このエラーは、お客様のユーザーの1人がワークフローを開始している場合にのみ発生しますが、テストログインの1つがワークフローイニシエーターである場合は発生しません。このエラーは、顧客のユーザーの5回のテスト実行のうち2回のみ発生しています。テストログインをテスト実行に使用すると、このようなエラーが発生することがありますが、20回の試行のうち3回しか発生しません。エラーは、ワークフローからの別のWebサービス呼び出しで発生しています。顧客のユーザーが試行しているときにクラッシュするのと同じ呼び出しではありません。

環境

SharePoint環境は、2つのWebフロントエンドと1つのアプリケーションサーバーで構成されています。ロードバランサーも動作しています。したがって、私の推測では、環境内のマシンの1つが適切に構成されていません。テストユーザーとテストしているときは、ファームのサーバーと同じネットワークにあるワークステーションでテストしています。これはリモートデスクトップ接続を介して直接実行しており、テストはロードバランサーに合格する必要があります。お客様のユーザーは同様の状況でワークフローをテストしていますが、リモートでテストする場合と同じように、SharePointファームへのルーティングが異なるため、別のフロントエンドにアクセスできると思います。

私がすでに試したこと

  • テストユーザーとのワークフローなしでWebサービスを直接テストする
  • 各フロントエンドでワークフローを使用せずにWebサービスを直接テストする
  • asmxファイルが実際にすべてのマシンのすべての_vti_binフォルダーにあるかどうかを確認する

結論:asmxはどこにでも存在し、Webサービスを手動で呼び出すときにASP.NET固有の404を経験したことはありません。

私の疑い

それは時々機能するので、おそらく1つのフロントエンドがその仕事をうまくやっていると思います。ワークフローが他の(障害のある)フロントエンドで実行されると、問題が発生します。これは、テストユーザーが開始したワークフローが顧客が開始したワークフローとは異なる動作をする理由を説明しています。

それとも許可の問題でしょうか?SharePointファームに対する権限がまったくなく、Webサービスを正常に呼び出すことができたテストユーザーを使用して、_vti_binから手動でWebサービスを呼び出すことをテストしました。または、システムアカウントでワークフローを開始する必要がありますか?

問題を絞り込むためにできることはありますか?ステージングシステムは引き続き正常に機能します。同じバージョン、同じユーザー、問題はありません。

よろしくお願いします。

乾杯

4

3 に答える 3

0

問題の切り分け:ワークフローなしでasmxをテストしたとき、テストユーザーアカウントまたはカスタマーユーザーアカウントを使用しましたか?ここで重要なのは、問題を1.Webサービス2.要求を処理しようとしているWFE3. Webサービスを呼び出すクライアントアプリケーション、つまりワークフローに分離することです。

許可:リンゴとリンゴを比較するためだけに、テストユーザーの許可を顧客ユーザーと一致させてみてください。

クロスドメイン接続はありますか?トラフィックを監視しているファイアウォールまたはウイルス対策ソフトウェアはありますか?

ログ:IISログファイルとイベントビューアをチェックして、404エラーの詳細を確認します。


Qubit

于 2012-12-23T20:28:36.960 に答える
0

Fiddlerをオンにして、Webサービスを呼び出す方法とタイミングと場所を確認してください。

私はそれがあなたに完全な絵を与えると思います。

動作しない場合は、フィドラーログも投稿してください

于 2012-12-26T09:00:25.473 に答える
0

今日問題を解決しました。

これは構成の問題でした。顧客のIT部門が、ファームに別のアプリケーションサーバーを追加し、IISコンソールでバインディングを構成するのを忘れていました。ワークフローが新しいアプリケーションサーバーで実行されるたびに、バインディングがないためにWebサービスに接続できませんでした。

于 2013-01-04T13:53:45.160 に答える