我想创建一个简单的Web服务来分发给ASP.Net开发人员。我找到了一个应用程序(SvnBridge),它具有我正在使用的布局 - 一个web.config
文件和一个.dll
文件。
有趣的部分在web.config
文件中:
<httpHandlers>
<clear/>
<add verb="*" path="*" type="SvnBridgeServer.SvnBridgeHttpHandler, SvnBridgeServer" />
</httpHandlers>
Ooooo看起来很完美。我可以抛出任何我喜欢的东西,并通过我认为是IHttpHandler
实现来处理它。
所以我扯掉了上面链接的配置文件的精神,将我的库捆绑到DLL中并在VS中点击 build 。我立刻在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#语言很满意,只是让我感到有些困惑的安排和配置。
我意识到这个问题可能看起来有点含糊不清 - 请发表评论,我会尽力澄清。
谢谢,
尼尔。
答案 0 :(得分:1)
EventLog说什么?可能应该有一个记录(类型为“Warning”,其源代码看起来像“ASP.NET x.x.xxxxx.x”)。
无论如何,你在帖子的开头提到你想要分发一个DLL文件(与web.config一起)。稍后您指向.ashx
文件。
我宁愿创建一个单独的类(项目中的.cs文件),并将我的HTTP处理程序的实现放在该类中。
另外,请仔细检查是否在web.config中正确指定了HTTP处理程序的类型:
<add verb="*" path="*" type="[namespace].[type], [assembly]" />
如果您正在使用IIS6,则需要手动添加通配符脚本映射,以便HTTP处理程序“捕获”请求。 This论坛帖子可能会有所帮助。
- 帕维尔
答案 1 :(得分:1)
这是固定的。我不得不将文件夹转换为IIS中的应用程序,并将源移动到可信(非网络)位置。
我感谢那些花时间审阅这个问题的人。