MVC3 Web アプリケーションで WCF サービスをホストしています。UriTemplate を持つ WebGet 属性を使用してメソッドをセットアップしています。UriTemplate にピリオドが含まれていると、Web サーバーから 404 応答が返されます。
[OperationContract, WebGet(UriTemplate = "DoSomething")]
Stream DoWork();
http://localhost/Services/Service1.svc/DoSomething - Works Correctly
[OperationContract, WebGet(UriTemplate = "dummyfile.xml")]
Stream DoWork();
http://localhost/Services/Service1.svc/dummyfile.xml - Returns a 404 error
ルートに関係していると推測していますが、よくわかりません。現在設定しているルートは次のとおりです。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.svc/{*pathInfo}");
routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
ピリオドを含む URITemplate を使用して MVC3 アプリで WCF サービスをホストする方法について、誰か洞察を提供できますか?