0

我正在我的 global.asax 中尝试一些 URL 重写 - 类似于这篇微软文章http://msdn.microsoft.com/en-us/library/system.web.routing.routetable.routes.aspx中发生的事情

我不断收到错误“BC30451:未声明名称'RouteTable'。”

我已将以下内容导入 global.asax 文件:

<%@ Import Namespace="System.Web.Routing" %>
<%@ Import Namespace="System.Web.Routing.Route" %>
<%@ Import Namespace="System.Web" %>


Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)

    RegisterRoutes(RouteTable.Routes) ' the problem occurs here

End Sub

..但它似乎无法识别“RouteTable”。

我已经与我的托管服务提供商确认我使用的是 .net 3.5 - 尽管我不相信,因为错误消息的底部说:

版本信息:Microsoft .NET Framework 版本:2.0.50727.4234;ASP.NET 版本:2.0.50727.4223

他们告诉我的 :

We have receive an update from our system engineers, net 3.5 is basically version 2 with a few add -ons. Similarly 4.5 is references as version 4.
They have also checked other sites on the server and they are also reflected as 2

这是正确的,因为我不确定我是否可以做到这一点而不是在 3.5 上?

谢谢,

4

2 回答 2

1

好的,即使 Microsoft .NET Framework Version:2.0.50727.4234; 可能会出现在屏幕上,但仍可以安装 asp.net 3.5 版本。我在网上查了一些资料,包括这个“asp.net version madness”:

http://blogs.msdn.com/b/jamesche/archive/2007/09/25/asp-net-version-madness.aspx

所以我不相信这个错误现在是由运行较低版本引起的。

至于我得到的错误,我想我需要将它添加到我的 web.config 中:

    <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
于 2013-06-12T11:59:57.630 回答
0

您必须运行 3.5 SP1 或更高版本才能使用 RouteTable。我相信路由在 Service Pack 1 之前的 3.5 中不可用,因此我建议验证您至少使用 3.5 SP1。

System.Environment.Version 将为您提供此信息,因此您可以尝试检查您的 .net 版本号,如下面的代码中所示:

Response.Write(System.Environment.Version.ToString());
Response.End();

或在您的 aspx 页面中:

<% Response.Write("Version: " + System.Environment.Version.ToString() ) %>
于 2013-06-11T16:08:27.733 回答