Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Ошибка синтаксического анализатора (веб-служба)


Автор: akizelokro 4.8.2008, 12:07
Написал веб-службу. В Visual Studio работает. Поставил IIS, создал виртуальный каталог, закопировал туда "всё", получаю комментарий:

Цитата

Ошибка синтаксического анализатора 
Описание: Ошибка при разборе ресурса, требуемого для обслуживания этого запроса. Изучите следующие подробные сведения о данной ошибке разбора и измените исходный файл. 

Сообщение об ошибке синтаксического анализатора: Не удалось создать тип 'WebServiceAgent.Service1'.

Ошибка источника: 


Строка 1:  <%@ WebService Language="C#" CodeBehind="Service1.asmx.cs" Class="WebServiceAgent.Service1" %>

 

Исходный файл: /servi/Service1.asmx    Строка: 1 



Вроде все сделал, как требовалось. aspnet_regiis -i прописал. Виртуальный каталог - опции по умолчанию. 

Автор: mr.DUDA 4.8.2008, 17:41
Длл-ку скопировали в bin? Класс WebServiceAgent.Service1 там есть и так и называется?

Автор: akizelokro 5.8.2008, 11:09
Где bin надо делать? В виртуальном каталоге?

Понял. Это что, получается, мне в IIS обязательно каталог bin создавать?

Автор: Kosten 5.8.2008, 15:46
akizelokro, а ты ручками копировал на IIS?

Автор: Idsa 5.8.2008, 16:06
Цитата(akizelokro @  5.8.2008,  15:09 Найти цитируемый пост)
Это что, получается, мне в IIS обязательно каталог bin создавать?

Все, что нужно, - положить в виртуальный каталог сборку из каталога bin.

Автор: mr.DUDA 6.8.2008, 11:03
Цитата(akizelokro @  5.8.2008,  11:09 Найти цитируемый пост)
Понял. Это что, получается, мне в IIS обязательно каталог bin создавать?

В виртуальной директории лежит .asmx файл, а во вложенной директории bin будет dll-ка. Если просто .asmx скопировать - никакого веб-сервиса из воздуха не материализуется.  smile 

Автор: v_enom 17.9.2009, 16:03
народ, помогите, такая же трабла, но я все перенес в каталог.


каталог находится по адресу:

C:\CodeTest\HelloWS

в нем лежат      ....\bin \ WebService1.dll    и  WebService1.pdb
                              \Service1.asmx
                              \Service1.asmx.cs

есди запускать код из файла Service1.asmx, то все работает, а если с кодбехайнд и прикрепить Service1.asmx.cs то выдается такая же ошибка 
(  
 Ошибка синтаксического анализатора
Описание: Ошибка при разборе ресурса, требуемого для обслуживания этого запроса. Изучите следующие подробные сведения о данной ошибке разбора и измените исходный файл.

Сообщение об ошибке синтаксического анализатора: Не удалось создать тип 'WebService1.Service1'.

Ошибка источника:

Строка 1:  <%@ WebService Language="C#" CodeBehind="Service1.asmx.cs" Class="WebService1.Service1" %>

)


вот что у меня в файле .asmx.cs

Код


using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;

namespace WebService1
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://localhost")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    public class Service1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }


        [WebMethod]
        public string ReversString(string MyMessage)
        {

            char[] arr = MyMessage.ToCharArray();
            Array.Reverse(arr);
            MyMessage = new string(arr);
            return MyMessage;


        }
    }
}




IIS 6.0, только поставил, особых настроек не делал. Только asp.net подключил и все....



Автор: v_enom 18.9.2009, 11:06
решил эту проблему сперва развернув проект автоматически:

1. Создал простой проект web site service application 
2. Затем проект-свойства-web
3. прописал путь под галочкой use local IIS server 
Код

[URL=http://localhost:4000/WebService/WebService2]
и создал виртуальный каталог
http://ipicture.ru/Gallery/Viewfull/23911597.html

при этом у меня уже был зарегистрирован один веб-сервис - webService.
Т.е. когда я открыл IIS manager то увидел, что WebService2 прописан был как сервис внутри webService, а внутри него (webService2) уже был файл *.asmx
ранее я делал неправильно и внутри сервиса webService создавал папку, куда кидал *.asmx, *.asmx.cs и bin. Это не правильно, это ошибка и так не работает.


А вообще лучше переносить на IIS все автоматически. 


http://ipicture.ru/

при этом надо не забыть зарегистрировать asp.net в IIS через консольную команду "aspnet_regiis.exe -i"  в папке C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 ,  выставить ASP.net 2.0 в свойствах сервиса,  
и еще в IIS manager в свойствах веб узла(и всех сервисов в т.ч.) Свойства-безопасность каталога-изменить надо поставить галочку "встроенная проверка подлинности Windows"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)