簡答
但是當我發佈,並嘗試打開,我看到的只是空白頁面的不停加載。
發生這種情況時,我們的應用程序無法發佈運行時(dnx.exe
)與應用程序。
討論
有幾種方法來發布ASP.NET核心RC1應用到Azure的Web應用程序。這些包括使用Git進行連續部署以及使用Visual Studio進行發佈。發佈您的存儲庫的內容以獲得特定幫助。
該示例是通過GitHub連續部署部署到Azure Web App的ASP.NET Core rc1應用程序。這些是重要的文件。
app/
wwwroot/
web.config
project.json
startup.cs
.deployment <-- optional: if your app is not in the repo root
global.json <-- optional: if you need dnxcore50 support
應用程序/ wwwroot文件/ web.config中
添加HttpPlatformHandler
。將其配置爲將所有請求轉發給DNX進程。換句話說,告訴Azure Web應用程序使用DNX。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler"
path="*" verb="*"
modules="httpPlatformHandler"
resourceType="Unspecified"/>
</handlers>
<httpPlatform
processPath="%DNX_PATH%"
arguments="%DNX_ARGS%"
stdoutLogEnabled="false"
startupTimeLimit="3600"/>
</system.webServer>
</configuration>
應用程序/ project.json
包括紅隼服務器上的依賴。設置將啓動Kestrel的web
命令。使用dnx451
作爲目標框架。請參閱下面的目標dnxCore50
的額外工作。
{
"dependencies": {
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": { }
}
}
應用程序/ Startup.cs
附上Configure
方法。這增加了一個非常簡單的響應處理程序。
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
namespace WebNotWar
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.Run(async (context) =>
{
await context.Response.WriteAsync(
"Hello from a minimal ASP.NET Core rc1 Web App.");
});
}
}
}
。部署(可選)
如果您的應用程序不在存儲庫根目錄中,請告訴Azure Web應用程序哪個目錄包含該應用程序。
[config]
project = app/
global.json(可選)
如果你想針對.NET的核心,告訴Azure中,我們要瞄準它。添加此文件後,我們可以用我們的project.json替換(或補充)dnx451
條目與dnxCore50
。
{
"sdk": {
"version": "1.0.0-rc1-update1",
"runtime": "coreclr",
"architecture": "x64"
}
}
請發佈您的存儲庫的關鍵內容(例如project.json,startup.cs,web.config ...)然後我們可以提供特定的幫助。 –