在IIS的默认网站下托管一个.NET Core网站

时间:2019-01-02 07:41:16

标签: c# iis asp.net-core

我有一个.NET Core网站,该网站已成功发布,并且在以下两种情况下都能很好地工作:

  1. 在调试模式下
  2. 当作为新网站托管在IIS中时。

但是,作为新网站托管在IIS上使我不得不指定要使用的新端口并由它访问(localhost:5000)。

但是我想像localhost/mywebsite这样将其作为域本身来解决。据我了解,这可以通过使用默认网站或通过使用端口80创建新网站并禁用默认网站来完成。但是我无法禁用默认网站。

当我尝试将我的网站添加到默认网站时,我遇到了很多错误,因为最终,路由效果不佳。例如,主页工作正常(例如localhost/mywebsite),但是当我单击一个按钮进入登录页面时,我会直接路由到localhost/login而不是localhost/mywebsite/login

其他信息:

已发布文件夹:发布后,我有2个文件夹:wwwrootruntimes。除此之外,我还有所有的配置文件和二进制文件。

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="dotnet" arguments=".\mywebsite.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
</configuration>

资源位于项目的wwwroot中。包含的资源包括JQuery和图像。当在Default Web Site下用作应用程序时,这些命令也不起作用。

第一个评论请求的示例发布方法:

<form method="post" enctype="multipart/form-data" action="/Login/Login">
    <table style="border: none">
        <tr>
            <td>
                Username:
            </td>
            <td>
                <input type="text" name="username" required />
            </td>
        </tr>
    </table>
    <input type="submit" value="Log-In" />
</form>

0 个答案:

没有答案