iT邦幫忙

1

[ASP.Net Core] 如何讓 Godaddy 跑 .NET Core 3.1 ?

原文:[ASP.Net Core] 如何讓 Godaddy 跑 .NET Core 3.1 ?


最近心血來潮逛看看最近有哪些 web hosting 的時候發現 Godaddy 竟然支援 .Net Core 了 !!
於是乎抱著滿心期待的拿了魔法小卡刷了一個月來試玩看看,刷完才發現竟然只支援 .Net Core 2.0 ...

身為一個踩雷大師怎麼能遇到點小挫折就放棄呢 ??
於是乎馬上想到了 .Net Core 不是支援 self-contained 嗎 ??
這樣不就可以在未安裝 .Net Core 3.1 的情況下跑了嗎 !!!

正當我以為可以順利地跑起來時馬上收到了個 500 個巴掌...

查了查相關資料原因是 AspNetCoreModuleV2 是在 .Net Core 2.2 以後才有的東西,Godaddy 上面只有 2.0 根本不認識他呀 !!
知曉原因後我照著網上的教學把 web.config 裡面的 AspNetCoreModuleV2 置換成 AspNetCoreModule

正當我覺得這次一定行並重整頁面後迎接的我是 502.5 個拳頭...

嗯好... 果然沒有這麼輕鬆可以讓我跑起來...
又經過了數小時的資料翻閱後終於翻到一篇 ASP.NET Core Hosting – 3 Simple Steps to Fix 502.5 Error in ASP.NET Core

上面有提到可以置換 web.config 中的 processPath 並在 arguments 指定 dll 運行

原本的 web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\WebApplication1.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 3047a62f-999e-46e5-b66f-70da7471bf2b-->

經過置換後變成:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 3047a62f-999e-46e5-b66f-70da7471bf2b-->

終於跑起來拉

看來以後有便宜的 Web Hosting 可以開發/測試了,
如果有流量小的網站直接在上面運行我想也是沒有問題的,
今天的經驗分享就到這拉 ~
希望有幫到大家


尚未有邦友留言

立即登入留言