20

問題:

ADFS2では、RP 信頼で https を使用する必要があります。RP信頼はhttps://localhost:44310/PAWS/. そうは言っても、IIS Express で SSL をローカルで使用する必要があります。そのため、 IIS Express を使用する ようにASP.NET MVC4プロジェクトを構成すると、 .mvc4 プロジェクト構成

これを TFS (ソース管理) にチェックインすると、チームの別の開発者が最新の状態になります。プロジェクトはそれらのために読み込まれません。

MVC4 プロジェクトが読み込まれない

Visual Studio 2012 でソリューションを開くと、次のエラー メッセージが表示されます。 VS2012 エラー 1 VS2012 エラー 2

これは、IIS Express がプロジェクト ファイルを自動的に読み取らず、HTTPS バインディングをサイト構成に追加しないためです。これは、VS が IIS Express の applicationhost.config ファイルに追加する構成です。

<site name="PAWS.Web-Site" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\larsene\Documents\My Web Sites\PAWS.Web-Site14" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:44310:localhost" />
    </bindings>
</site>

しかし、次のようにバインディング プロトコルを HTTPS に設定する必要があります。

<binding protocol="https" bindingInformation="*:44310:localhost" />

それを applicationhost.config に手動で入力することもできます。または、appcmd.exeをそのように実行して構成することもできます。

"%ProgramFiles(x86)%\IIS Express\appcmd.exe" set site /site.name:PAWS.Web-Site /bindings:https/*:44310:localhost

しかし、これら2つの方法のどちらも私が望むものではありません。このプロジェクトで作業するすべての開発者に、プロジェクトをロードする前に IIS Express の設定を手動で編集する必要があることを説明する必要はありません。

問題を再現する方法:

これは、最初に VS2012 を閉じることで簡単に再作成できます。次に、次の場所にある IIS Express の構成フォルダーを削除します。

%USERPROFILE%\Documents\IISExpress

次に、VS2012 を開き、https で IIS Express を使用するように構成された MVC4 プロジェクトへのソリューションも開きます。現在、VS2012 はプロジェクトの読み込みに失敗し、安全なバインドがないことを訴えます。

私のプロジェクトの最新情報を入手した人がプロジェクトを実行できるようにするには、何が間違っていますか、またはこれを修正するにはどうすればよいですか?

4

10 に答える 10

10

私は最近、この同じ問題に遭遇し、なぜそれが起こっているのかを突き止めることができました.

Visual Studio は Project Url 設定を使用して IIS Express http バインディングを設定し、IISExpressSSLPort 設定を参照して https バインディングを設定します。

ただし、プロジェクト URL を https アドレスに変更した場合、Visual Studio が混乱します。IIS Express バインディングの更新のために、プロジェクト URL に http アドレスを入力したと想定し、そこにある https アドレスを処理できないようです。

プロジェクト URL を https アドレスに変更することが、Visual Studio がデフォルトで https URL のデバッグを開始する唯一の方法であるため、これは複雑です。

したがって、これは、Visual Studio が IIS Express バインディングの更新を処理する方法に問題があるようです。バインドの自動更新と、読み込まれた https アドレスでのデバッグの開始の両方を可能にする適切な回避策を知りません。

于 2013-01-29T19:30:33.773 に答える
3

Visual Studio 2013 にはこの問題がないことを確認できます。

VS2012 から 2013 にアップグレードすると、問題が解決しました。

于 2014-04-20T18:21:48.923 に答える
1

プロジェクトを管理者として開いてみましたか (管理者として VS2012 を実行します)?

通常、上記のエラー (ASP.NET 4.5 用の web xxx の構成に失敗しました...) および (仮想ディレクトリ xxx の作成に失敗しました) が発生するのは、Visual Studio に十分な権限がないためです。

あなたの問題ではないかもしれませんが、試してみても害はありません。

于 2012-12-03T11:29:53.473 に答える
1

そのバインディングが自動的に表示されるようにするには、プロジェクトのプロパティ リストでSSL Enabled を True に設定する必要があります。(スコット・ハンセルマンによる)

Visual Studio 2010 で見られるように

于 2012-11-19T16:10:47.140 に答える
0

.csproj ファイルでポートを手動で構成しようとしましたか? そこで構成したら、他のワークステーションに引き継ぐ必要があります。

<IISExpressSSLPort>44310</IISExpressSSLPort>

また、[サーバー設定をすべてのユーザーに適用する] オプションがオンになっていても、プロジェクトのユーザー ファイルが問題を引き起こす可能性があります。通常、IIS Express で SSL の問題を修正するときは、ユーザー ファイルを削除するだけです。これは、問題を修正した後でユーザー設定を再構成する方がはるかに簡単だからです。

于 2013-01-24T17:34:54.567 に答える
0

最近、非常によく似た問題が発生し、解決しようとしたときにこの投稿に出くわしました。私が気づいたことの 1 つは、複数のサイトが applicationhost.config ファイルで HTTPS バインディングを使用してセットアップされている場合、IIS Express が非常に問題を抱えているように見えることです。

私の場合、ポート 44300 への同じ SSL バインディングを使用するように 2 つのサイトを設定しました。サイトの 1 つで SSL バインディングの 1 つのポート番号を変更すると、OP のものと同様のエラーが発生しました。最終的にサイトの 1 つを削除する必要がありましたが、これは理想的ではありません。

もう少し掘り下げた後、「SSL が必要」プロパティを からtrueに切り替えてからfalseに戻してみましたtrue。これにより、applicationhost.config の更新がトリガーされ、新しいポート番号で新しい SSL バインディングが作成されました。

既存のプロジェクトをコピーし、構成が 2 つのサイト間でポートを共有しようとしたため、この混乱に陥りました。

于 2013-11-18T16:35:50.197 に答える