我被要求将 ASP.NET 4.0 网站从 GoDaddy 迁移到 Arvixe。我已经使用项目解决方案设置了 VS 2012,并将其配置为将站点发布到 Arvixe 服务器。在 web.config 中调整数据库连接字符串后,该站点可以正常工作。叹
然而,这是一个巨大的网站,拥有庞大的数据库和大量的菜单项。菜单项不起作用 - 我在大多数菜单项上都收到 HTTP 404 Not Found 错误。这些链接与 web.config 中的 url 重写有关。这些重写至少有 100 次,但我不知道为什么它们不起作用。
这是一个例子:
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
<rewrites>
...
<add name="mycategory" virtualUrl="^~/my-stuff/(.+)$" redirectMode="Permanent" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/mycategory.aspx?rct=$1" ignoreCase="true" />
...
</rewrites>
</urlrewritingnet>
我检查了这些行中的大部分,以确保指定的 .aspxdestinationUrl
确实存在并且确实存在。在上面的示例中,mycategory.aspx 存在于根文件夹中。
在这些重写工作之前我需要配置一些东西吗?像需要启用的东西 - 或者可能是 Arvixe 需要的某种支持?顺便说一句,这是安装在 Business Class ASP Pro 帐户上的。
更新
我觉得很傻,但我进入 Arvixe 的控制面板,将 ASP.NET 从 4.0 更改为 4.0 Integrated Pipeline。这解决了上述问题,但导致了不同的问题......
尚未为此网站配置 DNS,因此我通过 IP 地址访问它。此时,主页加载正常,所有菜单项都正常工作。图像加载也很好,但是当我单击任何内容并转到新页面时,页面中的所有链接以及菜单项的 IP 地址都替换为“localhost”,这当然会破坏站点。
例如:
http://123.123.123.123/my-category/
和<img src="123.123.123.123/images/myimage.png"/>
被替换为:
http://localhost/my-category/
和<img src="localhost/images/myimage.png"/>
有谁知道我如何克服这个问题?