간단한 MVC 응용 프로그램에서 액세스 할 때 작동하는 WCF 서비스가 있습니다.Autofac을 사용하여 ChannelFactory를 통해 끝점을 등록하는 WCF 계약 불일치 오류
내가 Autofac와 최대 유선의 다른 MVC 응용 프로그램에서 같은 엔드 포인트에 전화를 할 때 나는이 같은 바인딩/계약 불일치 예외를 얻을 :
Content Type application/soap+xml; charset=utf-8 was not supported by service http://localhost:6985/ProductService.svc . The client and service bindings may be mismatched.
System.Net.WebException: The remote server returned an error: (415) Unsupported Media Type.
나는 합리적 해요 양쪽 모두의 구성 설정이 일치하지 않는다고 확신하며 Autofac이없는 WCF + MVC 조합에서 동일한 설정을 테스트 할 때이 자신감을 바탕으로합니다. 구성 설정은 pastebin.com/t7wfR77h입니다.
내가 Autofac와 종속성/엔드 포인트를 등록하는 방식에 문제가 있는지 나는 때문에 도움이 분석을하고자...
* 위해 Application_Start * Autofac 설정을위한 MVC 애플리케이션 코드 :
var builder = new ContainerBuilder();
//other registrations...
builder.Register(c =>
new ChannelFactory<IProductService>(
new WSHttpBinding("ProductService_wsHttpBinding"),
new EndpointAddress("http://localhost:6985/ProductService.svc")
)
).SingleInstance();
builder.Register(c =>
{
var factory = c.Resolve<ChannelFactory<IProductService>>();
return factory.CreateChannel();
}
).InstancePerHttpRequest();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
I이 활용 (완전성) 은 주입 만 1 종속성을 가지는 ProductController 매우 간단에 주석에서 설명한 바와 같이
public class ProductController : AsyncController
{
private IProductService _service;
public ProductController(IProductService ps)
{
_service = ps;
}
//...
//later simply call
_service.SomeMethod();
}
나에게 WCF 구성 문제처럼 보이지만, 제안 할 것이 많지 않습니다. 웹의 단서 ... http://blogs.msdn.com/b/endpoint/archive/2010/11/01/wcf- webhttp-service-returns-http-415-unsupported-media-type.aspx 행운을 빌어 요! –
@Nicholas, 이것을 보아 주셔서 감사합니다. WCF 문제가 아니기를 바래서 쉽게 해결할 수 있습니다. –
@neontapir 어쩌면 당신이 대답을 포기해야합니다, 내가 포기하고 그것을 작동시키지 않았다;) –