首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

创建WCF服务并部署到IIS,访问服务器出现异常

2014-01-22 
创建WCF服务并部署到IIS,访问服务器出现错误。************** Exception Text **************System.Servic

创建WCF服务并部署到IIS,访问服务器出现错误。
************** Exception Text **************
System.ServiceModel.ProtocolException: The content type text/html of the response message does not match the content type of the binding (multipart/related; type="application/xop+xml"). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>500 - ?????????????</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;} 
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;} 
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>??????????</h1></div>
<div id="content">
 <div class="content-container"><fieldset>
  <h2>500 - ?'. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
   at System.Net.HttpWebRequest.GetResponse()
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   --- End of inner exception stack trace ---

Server stack trace: 
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at WindowsFormsApplication1.ULF.IServiceFile.UpLoadFileInfo(CustomFileInfo fileInfo)
   at WindowsFormsApplication1.ULF.ServiceFileClient.UpLoadFileInfo(CustomFileInfo fileInfo) in D:\Documents\Visual Studio 2010\Projects\Text\WindowsFormsApplication1\Service References\ULF\Reference.cs:line 148
   at WindowsFormsApplication1.UpLoadForm.button1_Click(Object sender, EventArgs e) in D:\Documents\Visual Studio 2010\Projects\Text\WindowsFormsApplication1\UpLoadForm.cs:line 61
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

使用浏览器打开svc文件完全可以打开。

分享到:
[解决办法]
兄弟,我发现一个地方我感觉有点不对,你试试 messageEncoding 一个用的是Mtom 另一个用的是text
客户端和服务端编码方式不一样,可能是异常的原因

客户端  
   <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IServiceFile" messageEncoding="Mtom" transferMode="Buffered" textEncoding="utf-8" />
      </basicHttpBinding>
    </bindings>
服务端
    <bindings>      <basicHttpBinding>        <binding name="FileTransferServicesBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"          messageEncoding="Text" transferMode="Streamed" sendTimeout="00:30:00" textEncoding="utf-8">          <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" maxBytesPerRead="2147483647"/>          <security mode="None"></security>        </binding>      </basicHttpBinding>    </bindings>
[解决办法]
你访问的是什么地址?ServiceFile.svc应该是一个空文件,所有实现都写在cs文件里面的。但是错误信息却出现了访问某个html文件出错,完全对不上号。

热点排行