Error cs1519 invalid token in class
Я работаю над сайтом ASP .NET 2.0, который использует файл проекта веб-приложения и, следовательно, компилируется в dll, а не развертывает исходный код, как вы делаете с проектами веб-сайтов в более старом стиле.
Сайт отлично работает на моем тестовом сервере (Windows Server 2003 R2, IIS6), когда он запускается в корне веб-сайта. Однако вместо этого мне нужно запустить его в виртуальном каталоге. Когда я переключаюсь на это, я получаю следующую ошибку при переходе на любую из страниц сайта
CS1519: Invalid token ‘,’ in class, struct, or interface member declaration
Сообщение об ошибке переходит к сообщению о номере строки и файле кода, однако файл кода находится во временной папке ASP .NET files, и когда я пытаюсь его найти, его там нет.
Таким образом, я не могу определить, какая страница вызывает проблему, хотя я подозреваю, что это может быть главная страница, если эта ошибка возникает на всех страницах. Кто-нибудь еще видел это раньше или нашел решение?
Ответ
Оказывается, проблема была связана с наследованием настроек конфигурации сайта выше моего в виртуальной иерархии.
Этот сайт использует пользовательский профиль, свойства которого определены в разделе system.web, profile, properties в файле конфигурации. Тип одного из свойств был указан в “Пространстве имен.Формат className, AssemblyName”.
Когда я удалил “, AssemblyName” с конца, проблема разрешилась сама собой, потому что я избавился от запятой, которая была недопустимым токеном.
Я могу только предположить, что, когда ASP .NET компилирует страницы во время выполнения, должно быть, он также компилировал класс profile и использовал определения свойств в файле конфигурации во время генерации кода.
Похоже, вы не установили virtual в качестве приложения в IIS, или на нем запущена неправильная версия ASP.NET (т. Е. 1.1, когда оно должно быть 2.0.бла).
Виртуальный должен иметь значок шестеренки в представлении IIS, а на панели свойств должно быть имя приложения.
Ошибка компилятора CS1519
Недопустимый токен “token” в объявлении класса, структуры или члена интерфейса
Эта ошибка возникает при обнаружении токена там, где его быть не должно. token — это ключевое слово; идентификатор (имя класса, структуры, метода и т. д); строка, символ или числовое значение литерала, например 108, “Hello” или “;” либо оператор или знак препинания, такой как == или ;.
Любое объявление класса, структуры или члена интерфейса, содержащее недопустимые модификаторы перед типом, будет вызывать такую ошибку. Чтобы устранить эту ошибку, удалите недопустимые модификаторы.
В следующем примере ошибка CS1519 возникает в пяти местах, поскольку токены находятся там, где они недопустимы:
// CS1519.cs
// Generates CS1519 because a class name cannot be a number:
class Test 42
{
// Generates CS1519 because of ‘j’ following ‘I’
// with no comma between them:
int i j;
// Generates CS1519 because of “checked” on void method:
checked void f4();
// Generates CS1519 because of “num”:
void f5(int a num){}
// Generates CS1519 because of namespace inside class:
namespace;
}