【问题标题】:ASP.NET 5 project hosting on IIS在 IIS 上托管 ASP.NET 5 项目
【发布时间】:2015-02-04 04:14:14
【问题描述】:

我想在 Amazon 免费微型实例上托管我的 ASP.NET 5 项目,该项目使用 MVC 6 和 Entity Framework 7。 我找不到任何关于如何在 IIS 上托管 ASP.NET 5 项目的分步手册,所有材料都只是提到这是可能的,但没有任何指南。 基本上,我正在部署到本地文件夹,然后复制到新创建的站点,但没有任何效果。 不幸的是,我不能使用 Azure,因为它只有一个月的免费试用期,而不是一年。

【问题讨论】:

    标签: asp.net asp.net-mvc iis amazon asp.net-core


    【解决方案1】:

    我正在使用 Visual Studio 2015 Preview 来创建 ASP.NET 5 项目。我认为现在在 IIS 上部署并不困难。 首先通过在 VS 2015 预览版中将其发布为文件系统来发布您的网站,然后将发布的文件夹复制到您的服务器,在 IIS 中创建一个应用程序并将应用程序文件夹设置为 wwwroot 文件夹(而不是根文件夹),仅此而已。 请注意,在发布之前检查您的网站 project.json 中是否存在“Microsoft.AspNet.Server.IIS”。

    编辑: wwwroot文件夹下应该有一个web.config,web.config的内容可能是这样的(发布时带有预编译选项):

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <appSettings>
        <add key="kpm-package-path" value="..\approot\packages" />
        <add key="bootstrapper-version" value="1.0.0-beta1" />
        <add key="kre-package-path" value="..\approot\packages" />
        <add key="kre-version" value="1.0.0-beta1" />
        <add key="kre-clr" value="CoreCLR" />
        <add key="kre-app-base" value="..\approot\packages\Rvc.PopUpSite\1.0.0\root" />
      </appSettings>
    </configuration>
    

    或者像这样(没有预编译选项):

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <appSettings>
        <add key="kpm-package-path" value="..\approot\packages" />
        <add key="bootstrapper-version" value="1.0.0-beta1" />
        <add key="kre-package-path" value="..\approot\packages" />
        <add key="kre-version" value="1.0.0-beta1" />
        <add key="kre-clr" value="CoreCLR" />
        <add key="kre-app-base" value="..\approot\src\Rvc.PopUpSite" />
      </appSettings>
    </configuration>
    

    请注意kre-app-base 的值。在 Visual Studio 中发布后,有时它的值为空字符串。

    【讨论】:

    • 嗨 Ricky,刚刚尝试按照您所说的将已发布的文件夹复制到 Amazon,所以我在 Amazon 上的 C:\Inetpub\wwwroot\Blog 中有我的站点,在 IIS 中创建了新站点,将其指向 C: \Inetpub\wwwroot\Blog\wwwroot,但它不起作用。我在 roject json 中有“Microsoft.AspNet.Server.IIS”。任何想法我做错了什么?
    • @Sergey 刚刚编辑了我的帖子。我不知道您是否可以收到我的编辑通知,所以添加了此评论。如果您可以发布您收到的错误消息(如果有的话),这也将非常有帮助。
    • 嗨 Ricky,谢谢,现在它正在工作。遇到另一个问题,将 project.json 中的包从 *beta-1 更改为 *rc-1 后,在发布到本地磁盘期间,两个版本都已发布,您知道如何删除旧的依赖项吗?
    • kre-app-base 值为空是我遇到的所有问题的根源。谢谢!
    • kre 已重命名为 dnx
    【解决方案2】:

    我在使用 DNX Beta 4 时遇到了同样的问题。

    如果有人遇到同样的问题:

    当您在 Visual Studio 2015 RC 中发布您的网站并在 IIS 网站配置的物理路径中写入“XXX\wwwroot”时,您必须以 x64 框架(目标 DNX 版本)为目标。

    【讨论】:

    • 有谁知道这是否可以在某个 json 文件中设置?
    【解决方案3】:

    1.首先您需要将网站发布到文件系统:

    2。在 IIS 中创建一个新应用程序:

    3.将您在第 1 步中创建的文件解压缩到第 2 步的网站目录中。该文件夹应如下所示:

    4.您可能还需要安装 DNVM(以前称为 KVM)和 DNX 运行时环境(以前称为 KRE):

    Install the DNVM - dotnet version Manager (KVM)

    Install the DNX runtime environment inside DNVM (KRE)

    【讨论】:

    • 嗨 Nikolay,前 3 步已经完成,所以我刚刚安装了 KVM,无法运行“kvm upgrade”命令,直到将路径更改为 C:\Users\Administrator\.kre\bin>在此之后,我能够运行“kvm 升级命令”但结果相同,当我尝试打开网页时,我收到以下错误:HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容
    【解决方案4】:

    您可以使用文件系统发布方法。请按以下步骤操作:
    1/ 在 Visual Studio 的文件夹中生成 .dll 文件
    2/ 在 IIS 管理器中创建一个网站并提供文件夹路径

    【讨论】:

    • 我已经这样做了,但网站仍未打开,请参阅我对 Nikolay 上一条消息的评论
    【解决方案5】:

    我找到了我错过的内容,我需要在 projct.json 文件中将 url 更改为我的公共 DNS:

    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://ec2-54-68-21-4.us-west-2.compute.amazonaws.com/

    然后将网站上传到亚马逊后,我需要在网站根目录中运行 web.cmd

    【讨论】:

      猜你喜欢
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多