Назад | Перейти на главную страницу

Сайт IIS блокирует подключение к Интернету

Я борюсь с этой проблемой какое-то время.

Когда мой веб-сайт ASP.NET MVC4 начинает обслуживаться на моем локально установленном IIS (работает на порту 8081, не 80!) подключение к Интернету блокируется. Просто так.

Я в замешательстве, потому что это действительно странный. Он ведет себя так:

Я попытался изменить привязку с localhost: 8081 на {мой IP-адрес}: 8081, но это не помогло. Какие-нибудь подсказки?

РЕДАКТИРОВАТЬ

К вашему сведению, это мой web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    <section name="plisani.medo" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </configSections>
  <connectionStrings configSource="connectionStrings.config" />
  <location path="Account">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="Content">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="Images">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="log4net.Internal.Debug" value="true" />
    <add key="MvcSiteMapProvider_UseExternalDIContainer" value="true" />
    <add key="MvcSiteMapProvider_SiteMapFileName" value="~/Mvc.sitemap" />
    <add key="MvcSiteMapProvider_IncludeAssembliesForScan" value="GeomarketingWeb" />
  </appSettings>
  <plisani.medo>
    <add key="zeko1" value="MYDOMAIN\xxxxxxxxxxxxxxxx" />
    <add key="zeko2" value="xxxxxxxxxxxxxxxx" />
  </plisani.medo>
  <system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add name="textWriterTraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="Logs\log4netDebug.txt" />
      </listeners>
    </trace>
  </system.diagnostics>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <sessionState cookieName=".tempsession" 
                  cookieless="UseCookies" 
                  regenerateExpiredSessionId="true" 
                  mode="Custom" 
                  customProvider="SessionProvider">
      <providers>
        <add name="SessionProvider" 
             type="GeomarketingWeb.Providers.SessionProvider" 
             connectionStringName="GMDB" />
      </providers>
    </sessionState>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Logon" 
             name=".GMAUTH" 
             timeout="1440" 
             defaultUrl="~/Home/Index" 
             slidingExpiration="true" />
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>
    <membership defaultProvider="GeomarketingMembershipProvider">
      <providers>
        <clear />
        <add name="GeomarketingMembershipProvider" 
             type="System.Web.Security.ActiveDirectoryMembershipProvider" 
             connectionStringName="GMAD" 
             attributeMapUsername="sAMAccountName" 
             connectionUsername="" 
             connectionPassword="" 
             connectionProtection="Secure" 
             enablePasswordReset="false" 
             enableSearchMethods="true" 
             requiresQuestionAndAnswer="false" 
             requiresUniqueEmail="false" 
             maxInvalidPasswordAttempts="5" 
             minRequiredPasswordLength="6" 
             minRequiredNonalphanumericCharacters="0" 
             passwordAttemptWindow="10" 
             applicationName="Geomarketing" />
      </providers>
    </membership>
    <roleManager defaultProvider="GeomarketingRoleProvider" enabled="true" cacheRolesInCookie="true" cookieName=".GMROLES" cookieTimeout="5" cookiePath="/" cookieSlidingExpiration="true">
      <providers>
        <clear />
        <add name="GeomarketingRoleProvider" type="GeomarketingWeb.Providers.RoleProvider" connectionStringName="GMDB" applicationName="Geomarketing" />
      </providers>
    </roleManager>
    <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" 
             type="System.Web.Providers.DefaultProfileProvider" 
             connectionStringName="DefaultConnection" 
             applicationname="Geomarketing" />
      </providers>
    </profile>
    <pages controlRenderingCompatibilityVersion="4.0">
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
        <add namespace="MvcSiteMapProvider.Web.Html" />
        <add namespace="MvcSiteMapProvider.Web.Html.Models" />
      </namespaces>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="true" />
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" 
           path="*." 
           verb="*" 
           type="System.Web.Handlers.TransferRequestHandler" 
           resourceType="Unspecified"
           requireAccess="Script"
           preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Решено.

Я не могу поверить, что это работает так, и я не знаю о реализации и / или сетевых деталях этой путаницы, но вот решение:

  • Я обнаружил, что Интернет на рабочей станции был доступен, когда приложение было запущено с учетными данными Application Pool Identity.
  • он работал, когда приложение запускалось под моими собственными учетными данными
  • сбой подключения только тогда, когда приложение запускалось под специальными учетными данными службы, имеющей ограничение доступа в Интернет

Системный инженер обнаружил, что в случае, если приложение запускалось с такими учетными данными службы, брандмауэр Пало-Альто блокирует весь доступ в Интернет с ПК, на котором работает IIS (и приложение). Не то-приложение-доступ-к-Интернету, но полный доступ в Интернет с этого ПК.

На ее решение у нас ушло 2 дня.

Я надеюсь, что это поможет кому-то.