2015-03-25 2 views
0

Я создал следующие SVC службы данной конфигурации ценам нижеОшибка при создании ФОС .svc службы

public class NewsRest : INewsRest 
{ 
    public string getHomePageNews1() 
    { 
     DataTable dt = new DataTable(); 
     try 
     { 

      dt = new ManageNews().getHomePageNews1(); 
      string json = new Utills().dataTableToJsonString(dt); 
      json = json.Replace("task-photo-846b6edc-3b2e-4ff6-ba10-734d64143c1d.png", "task-photo-8d5feed4-d6a1-4ae9-9a72-387ccfda1dc5.jpg"); 
      return json; 
     } 
     catch (Exception ex) 
     { 
      return "{}"; 
     } 
    } 
} 


[ServiceContract] 
public interface INewsRest 
{ 
    [OperationContract] 
    [WebGet(ResponseFormat=WebMessageFormat.Json)] 
    string getHomePageNews1(); 
} 

и веб-конфигурации IS-

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="NewsRestBehavior"> 
     <serviceMetadata httpGetEnabled="true" policyVersion="Policy15" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="UPNews.WebServices.NewsRest" behaviorConfiguration="NewsRestBehavior"> 
    <endpoint address="" 
       binding="basicHttpBinding" 
       contract="UPNews.WebServices.INewsRest" /> 
    <endpoint address="mex" binding="mexHttpBinding" name="MetadataEndpoint" 
    contract="IMetadataExchange" /> 
    </service> 
</services> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 

но когда я тестирую эту услугу на WCF, он дает следующую ошибку. -

Error: Cannot obtain Metadata from http://localhost:57358/WebServices/NewsRest.svc/getHomePageNews1 If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: http://localhost:57358/WebServices/NewsRest.svc/getHomePageNews1 Metadata contains a reference that cannot be resolved: ' http://localhost:57358/WebServices/NewsRest.svc/getHomePageNews1 '. Content Type application/soap+xml; charset=utf-8 was not supported by service http://localhost:57358/WebServices/NewsRest.svc/getHomePageNews1 . The client and service bindings may be mismatched. The remote server returned an error: (415) Unsupported Media Type.HTTP GET Error URI: http://localhost:57358/WebServices/NewsRest.svc/getHomePageNews1 There was an error downloading ' http://localhost:57358/WebServices/NewsRest.svc/getHomePageNews1 '. The request failed with HTTP status 400: Bad Request.

Пожалуйста, расскажите, что здесь происходит.

ответ

0

Чтобы добавить MEX (обмен метаданных), вы можете добавить конфигурацию своего сервера, чтобы клиент мог получить сгенерированный WSDL. Что-то вроде этого:

<service name="UPNews.WebServices.NewsRest" behaviorConfiguration="NewsRestBehavior"> 
    <endpoint address="" 
      binding="basicHttpBinding" 
      contract="UPNews.WebServices.INewsRest" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
+0

Метаданные содержат ссылки, которые не могут быть решены: "HTTP: // локальный: 57358/WebServices/NewsRest.svc/getHomePageNews1. Sendera: DestinationUnreachable Сообщение с «http: // localhost: 57358/WebServices/NewsRest.svc/getHomePageNews1» не может быть обработано в приемнике из-за несоответствия AddressFilter в EndpointDispatcher. Убедитесь, что конечные адреса отправителя и получателя согласны – VIVEK

+1

И ошибка ..... –

+0

Похоже, что ваш сервер и конфигурация клиента не совпадают. Убедитесь, что конечные адреса отправителя и получателя совпадают. –