S.S*_*han 4 deployment iis host asp.net-core
我如何在 Windows IIS 中托管我的 Asp.Net Core(1、2 或 2.1)Web 应用程序,以便能够从我们本地网络(或我的虚拟操作系统)中的其他 PC 访问它?我的 PC 是台式机 Windows 10 Pro(不是 Win Server)。
我已经使用 IIS文章关注了 Windows 上的Host ASP.NET Core,但我无法让它工作。
我根据那篇文章所做的如下:
确保Prequisites:Visual Studio的2017年,安装Asp.Net 2.1核心SDK,从添加Internet信息服务(IIS)Turn Windows features on or off,Asp.Net核心主机捆绑安装程序从这里(验证在IIS AspNetCoreModule模块),然后:
将 Visual Studio 中的默认 asp.net 核心应用程序(构建 > 发布 > 文件夹)发布到文件夹并将其内容复制到D:\publish1.
在 IIS 中,右键单击站点 > 添加网站...并使用这些值(根据此处显示的图片):
[Site name]: mysite_com
[Physical path]: `D:\publish1`
[IP address]: `All Unassigned`
[Port]: 80
[Host name]: mysite.com
Run Code Online (Sandbox Code Playgroud)
也Application Pools > mysite_com > Basic Settings > .Net CLR Version改为No Managed Code.
现在,当我测试http://[IP of my PC]/mysite.com或类似地址时,无法在浏览器中访问我的网络应用程序。
那么,这些 IIS 设置有什么问题呢?
编辑:似乎这不仅仅针对 .net core 2.1(当您更改文章的 .net core 版本时,说明主要相同),所以我修改了标题和问题。
我找到了解决方案并想在这里记录它,因为它可能对其他人有帮助。有趣的是,Microsoft文档并没有解释这种常见场景的所有细节,比如当您想在内部网网络中运行您的 Web 应用程序时,例如构建大型办公室。以下是所需的 IIS 设置:
确保您有 IIS(打开或关闭 Windows 功能 > Internet 信息服务)
确保安装了 Asp.Net Core Host Bundle:dotnet-hosting-2.1.1.exe:IIS 中的 AspNetCoreModule 可以从 IIS 管理器 > 网站 > 任何网站(例如默认网站 > 模块)进行验证。
将 Visual Studio 中的 asp.net 核心应用程序(构建 > 发布 > 文件夹)发布到一个文件夹,然后将其生成的文件复制到其他所需的目标路径(例如 D:\publish1),以避免下次代码更新时出现文件锁定问题。
在 IIS 中,选择应用程序池(从站点上方的左侧树视图中),右键单击 > 选择添加应用程序池 > 名称:myAppPool,.Net CLR 版本:无托管代码。(适用于 .Net 核心应用程序)
找到您的 IP 地址:ipconfig在命令提示符下运行(在 Windows 10 中,它位于以太网适配器下:IPv4 Address,例如:192.168.103.xyz)。
现在,有两个选项:A) 添加网站,或 B) 在默认网站中添加应用程序
A) 添加网站=>http://192.168.103.xyz:890
在 IIS 管理器中,从左侧树视图中选择“站点”节点 > 右键单击 > 添加网站... >
[Site name]: myApp
[Application Pool]: Select:myAppPool as specified in step 4. if you didn't create it in before, IIS will add a new pool based on your SiteName which you can edit its Basic Settings later in Application Pools tree view node to set its .Net CLR Version to No Managed Code.
[Physical path]: path to your published files (eg: D:\publish1)
[IP address]: can change it to your IP (from drop down) or left it to `All Unassigned`
![Port]: must be something other than 80! (eg: 890), it must be a free port not taken by other apps. you can test different values if some fails. in my case, port 4, 100, 200, 1100 works; but 80, 110 (pop3 email) or 3000 not works as they are used/reserved for other means.
![Host name]: left it blank if you want to access this app from your network! It is required for real internet world wide web sites!
Run Code Online (Sandbox Code Playgroud)
此处您可能会错过的关键设置是端口(80 除外)和主机名(空字符串),如上所述!检查此链接以了解不同的端口号:系统端口 (0-1023)、用户端口 (1024-49151)、通常未分配的动态/专用端口 (49152-65535)。
您可以为您的站点设置 1 个以上的端口号或 IP:从右侧面板中选择 [绑定] 并编辑或添加条目。
允许您选择的端口号通过防火墙,以便能够从外部 PC 访问它。对于 Windows 防火墙,请转到:Windows Firewall with Advanced Security > Inbound Rules > New rule > [Port] option,指定您的端口号 > ...
浏览:192.168.103.xyz:890(使用您的 IP 地址和选择的端口号)。如果您没有为您的站点(即All Unassigned)设置特定的 IP,那么您还可以浏览 localhost:890 以查看您的应用程序。
B) 添加应用程序(在默认网站内)=> http://192.168.103.xyz/myApp
在 IIS 管理器中,从左侧树视图中选择“默认网站”,右键单击 > 添加应用程序 > 为 [别名] 选择一个名称:(例如:myApp),[应用程序池]:如步骤 4 中指定的那样,选择:myAppPool, [物理路径]:您的发布路径(例如:D:\publish1)
浏览: localhost/myApp 在您自己 PC 的浏览器中,以测试您是否看到您的 Web 应用程序。
如果您想从网络上的其他 PC 或虚拟 PC 获取它,请浏览:192.168.103.xyz/myApp(使用您的 IP 地址)。
| 归档时间: |
|
| 查看次数: |
6004 次 |
| 最近记录: |