【问题标题】:ASP.NET beginner woes with new Web SiteASP.NET 初学者对新网站的困扰
【发布时间】:2009-06-06 20:49:25
【问题描述】:

我是一位经验丰富的桌面 .net 开发人员,但这是我第一次尝试使用 ASP.NET,我几乎马上就被难住了。

我使用了 VS2008“新网站”向导,得到了一个简单的页面,代码隐藏页面等等。但是我下一步为一些实用程序方法添加一个简单的静态类以供所有页面使用,这根本行不通。

我尝试将代码放入 App_Code,我尝试创建一个新的库项目并引用它...在 Visual Studio 中一切总是编译得很好,但是当上传到服务器时它只是拒绝找到命名空间/类或识别库程序集。我试过弄乱 web.config,但找不到任何方法来引用库程序集(例如,“*”似乎没有这样做)。

服务器页面显示:版本信息:Microsoft .NET Framework 版本:2.0.50727.3074; ASP.NET 版本:2.0.50727.3074

是否有实用程序方法的最佳实践方式?如何让我的代码隐藏页面识别除自身之外的任何类(或更好的命名空间,甚至程序集)?

我得到的确切错误是: CS0246:找不到类型或命名空间名称“MyCommon”(您是否缺少 using 指令或程序集引用?)

【问题讨论】:

    标签: c# asp.net visual-studio-2008 web-site-project


    【解决方案1】:

    您最好忽略网站“项目”。它们在 Visual Studio 世界中是独一无二的,因为它们不是项目(没有 .csproj 或其他类似文件)。对于任何非网站开发人员来说,它们会显得非常奇怪和违反直觉。

    改为使用文件->添加新项目,然后选择“ASP.NET Web 应用程序”。这将创建一个 Web 应用程序项目,它将按照您的预期工作得更多。您甚至可以在您喜欢的任何文件夹中添加类,它们会按照您的预期工作。

    【讨论】:

    • 我尝试了一下,但因类似问题而失败;但由于似乎普遍认为 Web 应用程序更好,我可能会再试一次。
    • 这无助于解决问题,但我同意 John 的观点,即应用程序比网站更好。这里有一篇博文-mikehadlow.blogspot.com/2009/04/…
    • @lidgren:我建议您尝试使用 Web 应用程序项目,如果遇到问题,请创建一个新问题。您的问题实际上可能与这个不同。
    【解决方案2】:

    我假设您确实有一个指向命名空间的using 语句?

    我不时看到的东西...在服务器上,您(在 IIS 中)是否将新文件夹标记为“应用程序”?它应该在 IIS 中有一个 cog。如果您没有,那么它将在错误的位置查找 App_Code(“应用程序”告诉它本地应用程序根在哪里)。右键单击,属性,“创建应用程序”(或类似的东西 - 我手头没有服务器......)

    【讨论】:

    • 在 Vista (IIS7) 上有一个转换为应用程序的选项应该可以解决问题。
    • 是的,我尝试过全局命名空间和显式命名空间;它们在视觉工作室和编译文件中都很好地匹配,但在服务器上中断。不幸的是我只有 FTP 访问服务器,所以我不能检查图标...
    • 如果不将 IIS 中的文件夹配置为应用程序,它将无法正常工作......它是什么服务器? IIS 6? IIS 7?
    • 我不太清楚;这是一家网络酒店。但;简单的案例(只是一个带有代码隐藏页面的 Default.aspx)工作得很好......如果不将文件夹标记为应用程序,那可以工作吗?也许只有根文件夹被标记...我会尝试更多。
    • 这对我来说绝对是值得调查的事情。
    【解决方案3】:

    当类在 App_Code 中 not 时,我看到了这个错误...

    另一方面,您可以从 ASP.NET 应用程序而不是网站开始。它们是 2 种不同的应用程序模型,应用程序变体在添加类和程序集方面更容易一些。

    【讨论】:

      【解决方案4】:

      确保您的帮助程序类与网络表单位于相同的命名空间中 - 或完全限定您正在调用的特定帮助程序方法。你能提供一些你想要做什么的代码吗?

      【讨论】:

        【解决方案5】:

        确保通过publishing the web site 将项目移至服务器。此外,您可能希望使用web application project(新->项目->web->web 应用程序项目)而不是新网站。它的行为可能会更像你期望的那样。

        【讨论】:

        • 其实我也试过了,也遇到了类似的问题,所以我回到了网站(ctrl-s 到“发布”似乎更容易......)
        【解决方案6】:

        我会避免使用 网站项目,因为它确实给我们的团队带来了很多麻烦,类似于您在此处描述的内容。相反,您应该使用更清晰、更适合多项目解决方案的 Web 应用程序项目 模型。

        但是,如果您必须坚持使用网站项目模型,则应确保将项目 (MyCommon) 的引用添加到 Web 应用程序,然后在要使用的类中创建 using 语句。

        【讨论】:

          猜你喜欢
          • 2015-09-12
          • 2015-07-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-30
          • 2013-12-31
          • 2013-11-03
          相关资源
          最近更新 更多