0

アイテムの更新時に起動するSharePointイベントレシーバーを作成しました。受信者はAfterPropertiesとListItemにアクセスする必要があります。

IPアドレス(http://10.0.4.50/sites/)を使用してSharePoint Webアプリケーションからイベントレシーバーを起動すると、SPItemEventPropertiesのSiteIdおよびWebUrlにアクセスするときに FileNotFoundExceptionがスローされます。http://10.0.4.50/sites/companyNameのWebアプリケーションが見つかりませんでした。URLを正しく入力したことを確認してください。

サイトコレクションhttp:// computerhostname / sites/companyNameのセットアップで指定されたホスト名を使用してイベントレシーバーを起動する場合。これは正常に機能し、例外はスローされません。

//Combine Both AfterProperties And ListItem
var ListProperties = new List<KeyValuePair<string, object>>();
ListProperties.AddRange(properties.AfterProperties.ToKeyValue());
ListProperties.AddRange(properties.ListItem.ToKeyValue(p => !p.Sealed));
var AvaliableProperties = ListProperties.Distinct(new KeyValueComparer<object>());
4

2 に答える 2

1

これは必ずしもSharePointの問題ではありませんが、IISがホスト上で構成されている方法に起因している可能性があります。特定のサイトをIPアドレスとホスト名に「バインド」することができます。ホスト名がブラウザから送信されるHTTPGETに存在しない場合、IISはを返します404 NOT FOUND

これは、ブラウザを使用して、IPアドレスでサイトにアクセスできるかどうかを確認することで確認できます。

必要に応じてバインディングを追加できますが、IPアドレスごとに「デフォルト」のバインディングは1つしか存在できないため、(この場合は)10.0.4.50に存在できるサイトは1つだけです。

複数のサイトが存在するがホスト名を使用できない状況を回避する方法として、このIPのポート80以外のポートにバインディングを追加すると、URLがのようになりますhttp://10.0.4.50:8080/sites/companyName

于 2010-01-02T07:04:01.257 に答える
1

これは IIS だけの問題ではなく、Sharepoint 関連の問題でもあります。SharePoint での参照の多くは、開始点として URL を使用して行われます (SPSite のコンストラクターを見てください)。URL は、SharePoint の構成データベース内の既知の URL と比較されます。(およびサイトのコンテンツ データベース内の ofr ファイルなど)。

SharePoint は、代替アクセス マッピングと呼ばれるシステムを使用して、さまざまな URL を Web アプリケーションの "ゾーン" (既定、イントラネット、インターネットなどのカスタム定義) に割り当てます。「正確な」URL が見つからない場合、内部的な処理は失敗します (特に、検索は非常に「Url センシティブ」です)。

次に、IIS の部分が登場します。IIS にはおそらく 80 ポートで実行されているサイトが他にないため、特定のホスト ヘッダーがなくても (デフォルトでマシン名になります)、またはホスト ヘッダーがマシン名に設定されているため、IIS は要求を受け取ります。 SharePoint はこの webapp に関連付けられているため、SharePoint はそれを処理しようとし、URL を検索しますが、Sharepoint は URL を見つけられず、「中断」します。

SharePoint で新しい Web アプリを作成するときに、ホスト ヘッダー フィールドを空のままにしておくと、ホスト ヘッダーがありません。

于 2010-01-03T22:26:58.077 に答える