Создайте компактную, не SOAP Web Service в ASP.NET
-
25-09-2019 - |
Вопрос
Я хочу создать простую веб-сервис для распространения разработчиков ASP.NET. Я нашел приложение (Svnbridge) который имеет макет, я после - один web.config
файл и один .dll
файл.
Интересная часть в web.config
файл:
<httpHandlers>
<clear/>
<add verb="*" path="*" type="SvnBridgeServer.SvnBridgeHttpHandler, SvnBridgeServer" />
</httpHandlers>
Ооооо, это выглядит идеально. Я могу бросить все, что мне нравится в этом, и оно обращается за то, что я предполагаю, это IHttpHandler
реализация.
Поэтому я сорвал дух файла конфигурации, связанный выше, составлял мою библиотеку в DLL и нажмите строить в против Я сразу получаю это в IE:
Исходная ошибка:
Нет соответствующих линий источников
Я в основном работаю с PHP - Asp.net довольно новый для меня. Очевидно, я делаю что-то не так, но у меня нет подсказки, где даже начать.
На данный момент я использую сценарий Python для подключения всех источников C # в одном .ashx
Файл, который довольно круто для распространения, но делает отладку кошмара. Это выглядит немного так:
<%@ WebHandler Language="C#" Class="MyApp.MyClass" debug="true" %>
using System.Data;
...
namespace MyApp
{
public class MyClass : IHttpHandler
{
public void ProcessRequest(HttpContext Http)
{
...
}
}
}
Это, очевидно, намного больше для этого (область конфигурации пользователя и т. Д.), Но вы получаете гист.
Может кто-нибудь указать мне в правильном направлении? Я чувствую себя комфортно с языком C #, это просто расположение и конфигурация, которая меня немного озатается.
Я понимаю, что этот вопрос может показаться несколько неоднозначным - пожалуйста, свяжитесь с комментариями, и я постараюсь уточнить, где это необходимо.
Спасибо,
Неил.
Решение 2
Это исправлено. Мне пришлось превратить папку в приложение в IIS и переместить источник в надежную (не сетевое) местоположение.
Моя благодарность для тех, кто потратил время, чтобы рассмотреть этот вопрос.
Другие советы
Что говорит EventLog? Вероятно, должен быть запись (типа «Предупреждение» с источником, который выглядит как «asp.net xxxxxxx.x»).
Во всяком случае, вы упомянули в начале вашего сообщения, который вы хотели бы иметь один DLL-файл (среди web.config), чтобы быть распределенным. Позже вы указываете на .ashx
файл.
Я предпочел бы создать один класс (.cs файл внутри вашего проекта) и поместите реализацию моего HTTP-обработчика в этом классе.
Кроме того, дважды проверьте, что тип вашего HTTP-обработчика указан правильно в Web.config:
<add verb="*" path="*" type="[namespace].[type], [assembly]" />
Если вы используете IIS6, вам нужно вручную добавить сопоставление сценариев WildCard, чтобы ваш HTTP-обработчик для «поймать» запросы. Этот Форум пост может помочь.
- Павел