2014-10-02 121 views
0

我有一個asp.net網站,我無法從網絡內部或網絡外部訪問。我只能從我的機器訪問它,從我運行網站的位置訪問它。防火牆由名爲Eset的軟件管理,只有當我禁用它時,該站點甚至可以在本地系統上打開。我在網站使用的端口的防火牆上打了一個洞,儘管如此,我無法從另一臺機器訪問該站點。路由器中還有一個端口轉發規則,它將流量重定向到我的機器。無法訪問本地網絡中的asp.net網站

我按照說明herehere,這沒有幫助。

請讓我知道如何使這項工作?

編輯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

這是我做了什麼來解決這個問題。我是一個新手,並不知道我需要安裝/配置IIS Web服務器。我的印象是,Visual Studio本地的IIS服務器會照顧我在網絡內部和外部訪問網站的需求。

  1. 我按照本教程(install IIS on windows 7)安裝IIS服務器。
  2. 我然後從視覺工作室發佈的網站(我看過this video)。
  3. 觀察發現,我能夠訪問該網站爲

http://localhost/home/index

但不能作爲

http://192.168.1.x/home/index. 

發現,我不得不配置主機頭。這SO questionthis link幫我做到了。

  • 但我仍無法與本地IP地址來訪問網站,我(甚至分配一個新的端口後)甚至沒有能夠啓動IIS管理網站。我重新啓動了我的機器,並在Visual Studio中啓動項目時,發現了這條消息 - 「URL已配置爲使用iis express作爲Web服務器,但該URL當前在本地iis服務器上配置」。因此,我通過關注this question來禁用Visual Studio上的本地IIS服務器。

  • 當試圖再次啓動Visual Studio項目時,彈出此消息 - 「asp.net 4.5尚未在Web服務器上註冊,需要手動配置」。跟着this SO questionthis site來解決這個問題。這是我跑的命令:

    C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -i

  • 在此之後,我配置在IIS管理器中爲我的網站綁定使用我的本地IP地址。在更改後重新啓動站點,我可以通過本地主機,本地IP地址和外部IP地址訪問站點。

  • 2

    第一:檢查您當地的(開發商)機:

    你應該在你的IIS服務器配置了網站,而不是隻在一個臨時的Visual Studio(模擬IIS),請確保您能用一個像這樣的網址的瀏覽器進入你的網站。

    http://localhost/yoursite  (yoursite should be configured on iis administrator) 
    

    (如有問題請查看如何配置IIS)

    檢查你的本地IP地址 現在嘗試在您的本地機器的本地IP,因此查看本地的ip在CMD IPCONFIG命令窗口,嘗試這個辦法:用「你的IP地址」像這樣

    http://192.168.1.15/yoursite 
    

    「localhost」替換(如果問題檢查IIS配置,這裏罕見的問題)

    如果兩個previuos步驟作品嚐試您的局域網內同一URL地址在網絡的同一網段的計算機具有相同URL

    http://192.168.1.15/yoursite 
    

    (如有問題請查看Windows防火牆,檢查ESET防火牆,檢查是否有其他的防火牆,檢查路由器配置,消除你的路由器的IP forwardings)

    配置公網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

    +0

    謝謝。第一步工作。但第二步不起作用(使用IP地址)。我已經添加applicationhost.config文件的內容到我的問題。 – Sarvavyapi 2014-10-02 21:45:12

    +0

    我想你是使用IIS Express而不是IIS常規請參考http://stackoverflow.com/questions/3313616/iis-express-enable-external-request for express – user2148906 2014-10-03 15:37:19

    +0

    謝謝。我能解決這個問題。我會把它作爲答案發布(這比我想象的更復雜) – Sarvavyapi 2014-10-03 17:01:15

    0

    我跟着this great HOWTO from Ben Scott爲了在獨立的IIS Express實例上託管一個網站。由於我在外部進行服務,因此以管理員身份運行IISExpress.exe,因此您不要在訪問控制列表中註冊URL(感謝鏈接到Trevor Elliot的answer - 重要提示!)