解决编译器错误CS1519:类,结构或接口成员声明中的标记','无效

时间:2008-12-10 12:22:22

标签: c# .net asp.net

我正在使用一个使用Web应用程序项目文件的ASP .NET 2.0站点,因此编译为dll而不是像使用旧式Web站点项目那样部署源代码。

当站点在网站的根目录中运行时,该站点在我的测试服务器(Windows Server 2003 R2,IIS6)上运行正常。但是我需要在虚拟目录下运行它。当我切换到那个时,我在浏览到网站的任何页面时出现以下错误

CS1519:类,结构或接口成员声明中的令牌','无效

错误消息告诉我行号和代码文件,但是代码文件位于Temporary ASP .NET文件文件夹下,当我尝试找到它时,它不存在。

因此我无法找出导致问题的页面,尽管我怀疑它可能是主页面,如果在所有页面上都发生此错误。有没有其他人见过这个或找到解决方案?

4 个答案:

答案 0 :(得分:2)

原来问题与在虚拟层次结构中继承我的网站的配置设置有关。

该网站使用自定义配置文件,其属性在配置文件中的system.web,profile,properties下定义。其中一个属性的类型在“Namespace.ClassName,AssemblyName”格式中指定。

当我从末尾删除“,AssemblyName”时,问题自行解决,因为我已经删除了作为无效令牌的逗号。

我只能假设,当ASP .NET在运行时编译页面时,它必须也在编译配置文件类,并在代码生成期间使用配置文件中的属性定义。

答案 1 :(得分:0)

听起来你没有在IIS中将虚拟设置为应用程序,或者它运行的是错误的ASP.NET版本(即1.1,应该是2.0.blah)。

虚拟应在IIS视图中具有cog图标,并且在属性窗格中,必须具有应用程序名称。

答案 2 :(得分:0)

我的队友和我一直遇到同样的问题。问题是,当您从某处复制代码并将其粘贴到Visual Studio中时,有时会在行之间添加点。它们没有显示在Visual Studio中,但是编译器不断向您显示错误消息,这实际上令人沮丧。 要摆脱它们,可以将该代码段粘贴到一些在线编译器中。在在线编译器中,将显示这些点,因此您可以轻松删除它们,然后复制并粘贴整洁的代码。

答案 3 :(得分:-1)

namespace Rectangle
{
    class Name
    {
        int length1;
        int width1;
        int sum;

        Console.Write("Enter the length: ");
            length = int.Parse(Console.ReadLine());

        Console.Write("Enter the width: ");
            width = int.Parse(Console.ReadLine());

        sum = length1* width1;

        Console.WriteLine($"Sumis {sum}");

    }
}