Почему /eurl.axd/Gibberish прикрепляется к концу моих страниц? - PullRequest
4 голосов
/ 20 декабря 2011

Я работал над переводом нашего сайта на общедоступный бета-сервер, и после того, как мы настроили IIS для соответствия внутреннему серверу тестирования, я заметил эту проблему.Приложение все еще работает, но у него есть этот ужасный материал в конце.

Что вызывает это, чтобы показать?Я настроил фильтр ISAPI и добавил подстановочный знак для aspnet_isapi.dll.

Обновление.

Я полностью удалил и заново создал свой веб-сайт на моем тестовом сервере, чтобы проверить, как выглядели URL.

После воссоздания сайта в соответствии с бета-тестированием мой тестовый сервер не отображает в URL-адресе eurl.axd / gibberish.

Вот краткий обзор конфигурации

IIS6 / Windows 2003 / Helicon Isapi работает с перезаписью.

Веб-сайт <- asp classic |Пул приложений по умолчанию |пользовательский файл .htaccess <br>|
|
+ ----------- dr405 <- Приложение MVC3 |.Net 4.0 App Pool </p>

Насколько я знаю.бета зеркала это точно.Однако, скажем, это не так.Какие изменения могут вызывать проблему?

Поскольку сайт работает на одном сервере, а не на другом, я бы предпочел не иметь каких-либо решений, включающих изменение моего приложения, редактирование моего файла .htaccess и т. Д..

Раздел web.config system.web

    <customErrors mode="Off"/>
    <httpRuntime maxRequestLength="1000000000" />
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
      <buildProviders>
        <add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor" />
      </buildProviders>
    </compilation>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="90000" />
    </authentication>
    <membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <profile enabled="true" defaultProvider="dr405ProfileProvider" inherits="Tangible.Profiles.DR405Profile">
      <providers>
        <clear />
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
        <add name="dr405ProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
      </providers>
    </profile>
    <roleManager enabled="true">
      <providers>
        <clear />
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>
    <pages>
      <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.Routing" />
        <add namespace="System.Web.WebPages" />
        <add namespace="System.Data" />
      </namespaces>
    </pages>
  </system.web>

Обновление 2

Извините, если я кого-то перепутал.У меня есть встроенный сервер тестирования.это не открыто для общественности.Сайт работает правильно там.Внешний бета-сервер, где у меня проблемы.Производственный сервер не является даже фактором во всем этом.

Обновление 3

Вот мой файл .htaccess.Я до сих пор не верю, что это потребует каких-либо изменений, поскольку этот файл и приложение корректно функционируют на моем интегрированном сервере тестирования.

Большинство файлов предназначено для исправления некоторых действительно уродливых URL-адресов и автоматического указания пользователям на перемещенный контент.,Для приложения, с которым у меня возникают проблемы, нет правил.

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} (www.sarasotaproperty.net|www.sc-pa.net|sc-pa.net|sarasotaproperty.net) [nc]
RewriteRule ^(.*)$ http://www.sc-pa.com/$1 [R=301,NC,QSA]

RewriteMap  lc int:tolower

RewriteCond %{REQUEST_URI} [A-Z]
RewriteCond %{REQUEST_URI} !.*(js|css|inc|jpg|gif|png)
RewriteRule (.*) ${lc:$1} [R=301]


RewriteCond %{REQUEST_URI} !.*(web_content/pdf/).*
RewriteCond %{SCRIPT_FILENAME} !-d   
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule (?!.*/web_content/pdf/)([^/]*?\.pdf) /web_content/pdf/$1 [R=301]

RewriteRule pasite-(.*\.asp)$  /content/$1 [R=301,QSA]
RewriteRule home\.asp$  / [R=301]

RewriteRule ^search/tpp/?$ content/search_tangible.asp 
RewriteRule ^search/?$ content/search_real_property.asp 
RewriteRule ^downloads/?$ content/downloads.asp
#RewriteRule ^(.*?view)/([^/]*)/([^/]*)(/.+)? /search/parcel_detail.asp?account=0&$2=$3 [NC,LP,QSA,R=301]

Ответы [ 3 ]

0 голосов
/ 04 января 2012

Когда виртуальные папки в IIS совпадают с папками на рабочем сервере, они работают как положено;однако вы видите странный URL, если виртуальные папки отличаются?

Звучит так, как будто правила перезаписи в .htaccess относятся к производственной настройке.

Возможно ли для васвнести изменения в httpd.conf / httpd.ini helicon на бета-сервере, чтобы правила перезаписи работали как положено?Я не уверен, как должно выглядеть правило, и прошло много времени с тех пор, как я работал с чем-то похожим.: /

Вот документ на httpd.ini: http://www.isapirewrite.com/docs/#conffile

Поток, очень похожий на вашу ситуацию, который может помочь направить вас в правильном направлении: http://www.helicontech.com/forum/15029-ASPNET_40_MVC_and_ISAPI_Rewrite_3.html

После настройки правила перезаписи в httpd.conf может потребоваться запрет на запуск правил .htaccess.Я думаю, что AllowOverride None сделает это возможным.Вот пример:

<Directory "/parentFolder/dr405">
   AllowOverride None
</Directory>

Моя память о httpd.conf и перезаписывается в лучшем случае отрывочна.Я надеюсь, что это поможет вам направить вас в правильном направлении.

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

Вы пробовали предложения, приведенные в ответе здесь: https://stackoverflow.com/a/3327031/62054

Это звучит очень похоже на проблему, с которой вы столкнулись.

0 голосов
/ 05 января 2012

Каковы правила? Иногда директива RewriteBase / является причиной для различных сборок.

0 голосов
/ 20 декабря 2011

Какую версию состояния сеанса вы используете? Похоже, информация о состоянии сеанса, и он установлен без файлов cookie.

...