我一直在努力让我们的网站迁移到公共测试版服务器,在我们配置IIS以匹配内部测试服务器之后,我注意到了这个问题。该应用程序仍然有效,但它最终有这些丑陋的东西。
导致此显示的原因是什么?我已经设置了ISAPI过滤器,并为aspnet_isapi.dll添加了通配符。
我完全删除并在我的测试服务器上重新创建了我的网站,以验证网址的外观。
重新创建匹配测试版的网站后,我的测试服务器不会在网址中显示任何eurl.axd / gibberish。
以下是配置的快速概述
IIS6 / Windows 2003 / Helicon Isapi重写正在运行。
网站< - asp经典|默认应用程序池|自定义.htaccess文件
|
|
+ ----------- dr405< - MVC3 application | .Net 4.0应用程序池
据我所知。 beta反映了这一点。但是,让我们说它没有。可能导致此问题的变化是什么?
由于该网站在一台服务器上工作,而不是另一台服务器,我宁愿不提供任何涉及修改我的应用程序,编辑我的.htaccess文件等的解决方案......
<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>
抱歉,如果我困惑任何人。我有一个集成的测试服务器。这不是暴露给公众的。该网站在那里正常工作。面向外部的测试版服务器是我遇到问题的地方。生产服务器甚至都不是所有这一切的因素。
这是我的.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]
答案 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 /'指令是不同构建的原因。