我有一个asp.net网站,我无法从网络内外访问。我只能从我的机器上访问它,从我运行网站的地方。防火墙由一个名为Eset的软件管理,只有当我禁用它时,该网站甚至会在我的本地系统上打开。我在防火墙上为网站使用的端口打了一个洞,尽管我无法从另一台机器访问该网站。路由器中也有一个端口转发规则,它将流量重定向到我的机器。
请告诉我如何才能完成这项工作?
编辑1: IISExpress / config / applicationhost.config文件的内容。
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
<!--site name="WebSite2" id="2" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite2" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:192.168.1.12" />
</bindings>
</site-->
<site name="DataArchive" id="3">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="D:\Main\Work\SOURCE\WORKING\eMote\MicroFrameworkPK_v4_3\APPS\DataArchive\DataArchive" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:64068:localhost" />
</bindings>
</site>
答案 0 :(得分:2)
首先:检查您的本地(开发者)计算机:
您应该在IIS服务器中配置您的站点,而不仅仅是在临时的Visual Studio(模拟iis)中,确保您可以使用带有这样的URL的浏览器进入您的站点。
http://localhost/yoursite (yoursite should be configured on iis administrator)
(如果问题检查如何配置IIS)
第二次检查您的本地IP地址 现在尝试在本地计算机上使用本地IP,因此在CMD窗口中使用IPCONFIG命令查看本地IP并尝试:replace&#34; localhost&#34;使用&#34;您的IP地址&#34;像这样
http://192.168.1.15/yoursite
(如果问题在IIS中检查您的配置,这里很少出现问题)
第三如果两个上述步骤都有效,请使用相同的网址网络的相同网段中的计算机尝试本地网络内的相同网址
http://192.168.1.15/yoursite
(如果问题检查WINDOWS防火墙,检查ESET防火墙,检查是否有其他防火墙,检查路由器配置,消除路由器中的IP转发)
第四将公共IP配置为本地IP 如果最后一步工作,并且您想要从外部计算机查看您的页面,您应该将公共IP从路由器指向本地服务器ip, 试试这个最简单的方法
在路由器中配置DMZ,将所有端口转发到本地计算机。
如果你的公共IP是200.105.210.190,配置DMZ将所有端口转发到你的本地ip 192.168.1.15
所以全世界都可以通过以下网址访问您的计算机
http://200.105.210.190/yoursite
如果问题检查路由器配置。 应将公共IP配置到路由器 本地IP应该是静态IP
答案 1 :(得分:0)
这就是我为解决这个问题所做的工作。我是新手,并不知道我需要安装/配置IIS Web服务器。我的印象是Visual Studio本地的IIS服务器将满足我从网络内外访问网站的需求。
http://localhost/home/index
但不是
http://192.168.1.x/home/index.
发现我必须配置主机头。这SO question和this link帮我做到了。
但我仍然无法使用本地IP地址访问该站点,甚至无法从IIS管理器启动该站点(即使在分配新端口后)。我重新启动了我的机器,在visual studio上打开项目后,遇到了这条消息 - “url配置为使用iis express作为Web服务器,但是当前在本地iis服务器上配置了url”。因此,我按照this question禁用了Visual Studio上的本地IIS服务器。
在尝试再次启动visual studio上的项目时,会弹出这条消息 - “asp.net 4.5尚未在Web服务器上注册。您需要手动配置”。按照this SO question和this site来解决问题。这是我跑的命令:
C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -i
在此之后,我在IIS管理器上为我的站点配置了绑定以使用我的本地IP地址。在此更改后重新启动站点,我能够使用localhost,本地IP地址和外部IP地址访问该站点。
答案 2 :(得分:0)
我关注this great HOWTO from Ben Scott,以便在独立的IIS Express实例上托管网站。由于我在外部服务并因此以管理员身份运行IISExpress.exe,因此您不在访问控制列表中注册URL(感谢Trevor Elliot的answer链接 - 顶尖提示!)