我的自定义处理程序在Asp.NET开发服务器上100%工作,但是当我尝试运行Comment / Find(通过AJAX调用找到用户)时,我将网站发布到IIS 5.1(我知道我的命名)处理程序sux !!! :)
无法显示页面 由于页面地址不正确,无法显示您要查找的页面。
请尝试以下方法:
* If you typed the page address in the Address bar, check that it is entered correctly.
* Open the home page and then look for links to the information you want.
HTTP 405 - 不允许资源 互联网信息服务
技术信息(支持人员)
* More information:
Microsoft Support
function findUser(skip, take) {
http.open("post", 'Comment/FindUser', true);
//make a connection to the server ... specifying that you intend to make a GET request
//to the server. Specifiy the page name and the URL parameters to send
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader('Criteria', document.getElementById('SearchCriteria').value);
http.setRequestHeader("Skip", skip);
http.setRequestHeader("Take", take);
http.setRequestHeader("Connection", "close");
//display loading gif
document.getElementById('ctl00_ContentPlaceHolder1_DivUsers').innerHTML = 'Loading, Please Wait...<br /><img src="Images/loading.gif" /><br /><br />';
//assign a handler for the response
http.onreadystatechange = function() { findUserAction(); };
//actually send the request to the server
http.send(null);
}
任何人都可以帮助我吗?
答案 0 :(得分:3)
在IIS上,并非所有调用都将由asp.net处理程序处理(与开发服务器的cassini不同),除非调用以.aspx,.ashx等结束,.NET isapi dll将不处理该调用。
线索在
中HTTP 405 - 资源不允许Internet信息服务
如果文件系统中没有相应的.ashx文件,您还需要在web.config中映射处理程序。
答案 1 :(得分:3)
确保您已在IIS服务器上允许扩展。开发服务器为您自动执行此操作。
如果您打开网站的属性,请转到主目录选项卡,然后单击配置按钮。
在那里尝试添加您用于处理程序指向的扩展名。将可执行文件设置为aspnet_isapi.dll(查看标准的.aspx扩展名以查找它在您的计算机上的位置)并取消选中“检查该文件是否存在”。
我被这几次烧了,这就解决了问题
科林G答案 2 :(得分:0)
问题是当我在dev上调用处理程序时。服务器我叫它谎言这个
http.open("post", 'Comment/Rate', true);
因为在我的web.config中,我指示它捕获所有“Comment /”Urls并调用CommentHandler.ashx来处理它。
<add verb="*" path="Comment/*" type="CoffeeMashup2.CommentHandler"/>
但是由于某些原因在IIS中它没有用,所以我将上面的调用改为
http.open("post", 'CommentHandler.ashx/Rate', true);
并且它的工作率为100%
非常感谢你的帮助