一部のサイトはVisual StudioのWebサイトプロジェクトとして実行しています。最近、VS2015にアップグレードしました。これで、新しいWebサイトに仮想ディレクトリを追加できなくなりました。
エラーメッセージが表示される[Add new virtual direcory]を右クリックして、Projectフォルダーのapplicationhost.configを編集してみました。
これはVS2015のバグですか、それともディレクトリを作成する方法はありますか? VS2015にアップグレードする前に、IIS Expressで既に実行されているプロジェクトには問題はありません。
PS:私はスレッド here を知っていますが、助けにはなりません。
FileSystem WebサイトをIIS Expressに。
これで、エラーなしで作成できます。
上記の答えはどちらもうまくいきませんでしたが、なぜこれが機能するのかはまだわかりませんが、ここに私がやったことがあります:
プロジェクトにあるApplicationhost.configファイルを変更します。
元々は次のように見えました:
<site name="Website" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\...\MyWebsite" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51005:localhost" />
</bindings>
</site>
別のアプリケーションパスエントリを追加する必要がありました。
<application path="/mywebsite" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\...\MyWebsite" />
</application>
したがって、次のようになります。
<site name="Website" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\...\MyWebsite" />
</application>
<application path="/mywebsite" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\...\MyWebsite" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51005:localhost" />
</bindings>
</site>
ソリューションファイル ".sln"がある場合は、次の手順に従います。
メモ帳を使用してソリューションファイルを開きます。
Project( "{で始まる行を検索します
例えば:
Project( "{E24C65DC-7377-472B-9ABA-BC803B73C61A}")= "WebProject1"、 "WebProject1"、......
次に、次のように変更します。
Project( "{E24C65DC-7377-472B-9ABA-BC803B73C61A}")= "WebProject1"、 "http:// localhost:12345/WebProject1 "、......
新しいプロパティを追加します
SlnRelativePath = "C:\ WebProject1 \"
内ProjectSection(WebsiteProperties)
例では、ProjectSectionから
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "WebProject1", "{6D411253-734E-401A-A049-9620FC55D4FB}"
ProjectSection(WebsiteProperties) = preProject
UseIISExpress = "true"
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
Debug.AspNetCompiler.VirtualPath = "/WebProject1"
Debug.AspNetCompiler.PhysicalPath = "C:\WebProject1\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\"
Debug.AspNetCompiler.Updateable = "true"
Debug.AspNetCompiler.ForceOverwrite = "true"
Debug.AspNetCompiler.FixedNames = "false"
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.VirtualPath = "/WebProject1"
Release.AspNetCompiler.PhysicalPath = "C:\WebProject1\"
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "false"
Release.AspNetCompiler.Debug = "False"
EndProjectSection
EndProject
最終的にこれになる:
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "http://localhost:12345/WebProject1", "{6D411253-734E-401A-A049-9620FC55D4FB}"
ProjectSection(WebsiteProperties) = preProject
UseIISExpress = "true"
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
Debug.AspNetCompiler.VirtualPath = "/WebProject1"
Debug.AspNetCompiler.PhysicalPath = "C:\WebProject1\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\"
Debug.AspNetCompiler.Updateable = "true"
Debug.AspNetCompiler.ForceOverwrite = "true"
Debug.AspNetCompiler.FixedNames = "false"
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.VirtualPath = "/WebProject1"
Release.AspNetCompiler.PhysicalPath = "C:\WebProject1\"
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "false"
Release.AspNetCompiler.Debug = "False"
SlnRelativePath = "C:\WebProject1\"
EndProjectSection
EndProject
WhizBangの答えに似ています...
ルートプロジェクトフォルダー内のファイルを削除します(必要に応じてバックアップします)
.vs\config\applicationhost.config
プロジェクトファイルのIISUrlタグを空にします(存在する場合)。
<IISUrl></IISUrl>
プロジェクトのプロパティに移動し、仮想URLをもう一度作成してみてください。