为什么/eurl.axd/Gibberish被添加到我的页面末尾?

时间:2011-12-20 18:31:52

标签: asp.net-mvc-3 iis-6 windows-server-2003 isapi-rewrite

我一直在努力让我们的网站迁移到公共测试版服务器,在我们配置IIS以匹配内部测试服务器之后,我注意到了这个问题。该应用程序仍然有效,但它最终有这些丑陋的东西。

导致此显示的原因是什么?我已经设置了ISAPI过滤器,并为aspnet_isapi.dll添加了通配符。

更新

我完全删除并在我的测试服务器上重新创建了我的网站,以验证网址的外观。

重新创建匹配测试版的网站后,我的测试服务器不会在网址中显示任何eurl.axd / gibberish。

以下是配置的快速概述

IIS6 / Windows 2003 / Helicon Isapi重写正在运行。

网站< - asp经典|默认应用程序池|自定义.htaccess文件
|
|
+ ----------- dr405< - MVC3 application | .Net 4.0应用程序池

据我所知。 beta反映了这一点。但是,让我们说它没有。可能导致此问题的变化是什么?

由于该网站在一台服务器上工作,而不是另一台服务器,我宁愿不提供任何涉及修改我的应用程序,编辑我的.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文件。我仍然不相信这应该需要任何修改,因为这个文件和应用程序在我的集成测试服务器上正常运行。

大多数文件的目的是修复一些非常难看的网址,并自动指向用户移动内容。没有规则适用于我遇到问题的应用程序。

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 :(得分:0)

您使用的是什么版本的会话状态?它看起来像会话状态信息,并设置为无cookie。

答案 1 :(得分:0)

当IIS中的虚拟文件夹与生产服务器中的虚拟文件夹匹配时,它按预期工作;但是,如果虚拟文件夹不同,您会看到奇怪的URL吗?

听起来好像.htaccess中的重写规则特定于生产设置。

您是否有可能在beta服务器上对helicon的httpd.conf / httpd.ini进行更改,以便重写规则按预期工作?我不确定规则应该是什么样子,因为我使用了类似的东西已经有一段时间了。 :/

这是关于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

这听起来与你遇到的问题非常相似。

答案 2 :(得分:0)

有什么规则?有时'RewriteBase /'指令是不同构建的原因。