我试图在2012年版本8400上运行IIS8中运行的wcf服务.
在安装web角色时,没有像2008年那样找到wcf的东西(3.51以下).
安装时svc处理程序映射丢失了,所以我做了一个:
%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe –i
Run Code Online (Sandbox Code Playgroud)
现在处理程序映射就在那里,但我仍然得到:
The resource you are looking for does not have a handler associated with it.
Run Code Online (Sandbox Code Playgroud)
(我删除了静态文件处理程序.)
该网站使用经典管道以使用模拟.
我正在开发一个基于.Net Framework 3.5 sp1的应用程序,并托管在Windows Server 2008(64位)上.
在本地浏览wcf服务(.svc)时,每件事都可以,但在使用完整域URL浏览时,它会出错.
本地地址是这样的:http://localhost/MyService.svc
和域名地址是这样的:http://MySite.ir/MyService.svc
顺便说一句,页面(.aspx)和其他文件在localhost和域地址上都能正常工作.
任何想法将不胜感激
这是详细的错误:
HTTP错误404.3 - 未找到
由于扩展配置,无法提供您请求的页面.如果页面是脚本,请添加处理程序.如果要下载文件,请添加MIME映射.详细的错误信息
模块: StaticFileModule
通知: ExecuteRequestHandler
处理程序:StaticFile
错误代码: 0x80070032
请求的URL:http://MySite.ir: 80/MyService.svc
物理路径: D:\ inetpub\vhosts\MySite.ir\httpdocs\MyService.svc
登录方法: 匿名
登录用户 匿名
每当我向IIS发布WCF服务时.几乎我已经习惯于得到这个错误:
HTTP错误404.3 - 未找到由于扩展配置,无法提供您请求的页面.如果页面是脚本,请添加处理程序.如果要下载文件,请添加MIME映射.
我保持的做法是:将网站的应用程序池更改为classic mode.但这次我运气不好.
我一直在研究网络服务,并通过直接从VS2012在浏览器中查看它进行测试,但现在我需要在IIS中托管它,出于某种原因,它根本不起作用.
我已经尝试将其作为我本地IIS下的新Web应用程序发布.它显示应该如此,但当我切换到IIS中的内容视图时,右键单击该MyService.svc文件,然后选择"浏览",我得到的是一个新的Web浏览器窗口,说明找不到该站点.
为了检查问题是否与我服务中的某些内容有关,或者是一般问题,我尝试从VS项目模板(一个新的WCF服务应用程序)创建一个新的测试服务,我编译好了,在我的浏览器中运行得很好,然后尝试了发布到IIS,具有相同的结果.
一点额外信息:
我最近能够在IIS中发布一个网站,它运行正常 - 我真的认为这个过程应该与服务大致相同,但显然我错过了一些东西.
更新:回复以下评论的一些额外信息:
.asmx文件,只有.svc文件,文件web.config和bin/文件夹.任何关于我可以尝试解决这个问题的提示将不胜感激....
我需要一个通过 REST 提供 PDF 的 WCF 服务库。例如,我有一个像这样的网址:localhost:8732/service1/reports/ok
我收到一个 PDF 作为响应。它是本地文件系统中的固定文件。这是我当前的代码:
服务.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WcfJsonRestService
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in both code and config file together.
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
public class Service1 : IService1
{
public Stream GetReport(string value)
{
WebOperationContext.Current.OutgoingResponse.ContentType = "application/pdf";
FileStream f = new FileStream("C:\\invoice.pdf", FileMode.Open);
int …Run Code Online (Sandbox Code Playgroud)