Почему IIS отказывается от моего кода Code.Behind? - PullRequest
0 голосов
/ 06 октября 2011

Я создал небольшой веб-сервис, запустил его в Visual Studio Development Server, и он работал нормально. Затем я решил запустить его (все еще через Visual Studio) на IIS.

Мой Webservice отказывался работать, пока я не удалил атрибут Code.Behind из элемента Webservice в разметке asmx. Теперь он работает без нареканий.

Может ли кто-нибудь объяснить мне причину?

Редактировать: Под отказался работать, я имею в виду, я получил страницу с сообщением This page must have a <%@ webservice class ... %> directive, которая у него была. Что касается «где был код», у меня есть разметка, содержащая эту строку, и файл asmx.cs, который содержит реализацию класса. Имейте в виду, что этот код работал, и без элемента теперь он также работает, так что разница в поведении между VSDS и IIS позволяет мне озадачиться.

1 Ответ

1 голос
/ 06 октября 2011

Атрибут CodeBehind, используемый в директиве страницы или веб-службы, не используется во время выполнения. Он используется только Visual Studio, поэтому он знает связанный файл .cs или .vb.

Атрибут class для веб-сервисов или наследование страниц указывает, какой класс использовать во время выполнения. Если это веб-сайт, а не веб-проект, то кодовый файл используется во время выполнения для поиска связанного кода для страницы.

Сообщение об ошибке поможет выяснить, в чем проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...