Khi tạo dự án WCF, các tệp thành viên mặc định chỉ là các tệp lớp csharp bình thường, chứ không phải tệp svc. Các tệp svc có bắt buộc với dự án WCF không? Khi nào chúng nên được sử dụng?Mối quan hệ giữa các tệp SVC và các dự án WCF?
Trả lời
.svc tệp được sử dụng khi bạn lưu trữ dịch vụ WCF của bạn trong IIS.
Xem tài liệu của Microsoft here và here.
Có một mô-đun trong IIS xử lý tệp .svc. Trên thực tế, nó là ASPNET ISAPI Module, mà bàn tay ra yêu cầu cho các tập tin .svc đến một trong các loại nhà máy xử lý đã được cấu hình cho ASPNET, trong trường hợp này
System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version = 3.0.0.0, Culture = trung tính, PublicKeyToken = b77a5c561934e089
Nếu bạn đang lưu trữ dịch vụ WCF của bạn trong một cái gì đó khác hơn là IIS, sau đó bạn không cần file .svc.
Kind của một câu hỏi cũ, nhưng đối với nhân viên của Google ..
Trên thực tế, nó có thể tạo ra một dự án WCF và lưu trữ nó trong IIS mà không sử dụng một tập tin .svc.
Thay vì thực hiện DataContract của bạn trong svc bạn code-behind, bạn thực hiện nó trong một file .cs bình thường (tức là không có mã số đằng sau.)
Vì vậy, bạn sẽ có một MyService.cs như thế này:
public class MyService: IMyService //IMyService defines the contract
{
[WebGet(UriTemplate = "resource/{externalResourceId}")]
public Resource GetResource(string externalResourceId)
{
int resourceId = 0;
if (!Int32.TryParse(externalResourceId, out resourceId) || externalResourceId == 0) // No ID or 0 provided
{
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NotFound;
return null;
}
var resource = GetResource(resourceId);
return resource;
}
}
Sau đó, đến điều có thể làm được điều này. Bây giờ bạn cần để tạo ra một Global.asax với mã-đằng sau, nơi bạn có thêm một móc sự kiện Application_Start:
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
}
private void RegisterRoutes()
{
// Edit the base address of MyService by replacing the "MyService" string below
RouteTable.Routes.Add(new ServiceRoute("MyService", new WebServiceHostFactory(), typeof(MyService)));
}
}
Một điều tốt đẹp về vấn đề này là bạn không cần phải xử lý các .svc trong URL tài nguyên của bạn. Một điều không tốt đẹp là bây giờ bạn có một tập tin Global.asax.
Nếu bạn đang sử dụng .net 4.0 trở lên, bạn bây giờ có thể "mô phỏng" các .svc qua cấu hình như sau:
<system.serviceModel>
<!-- bindings, endpoints, behaviors -->
<serviceHostingEnvironment >
<serviceActivations>
<add relativeAddress="MyService.svc" service="MyAssembly.MyService"/>
</serviceActivations>
</serviceHostingEnvironment>
</system.serviceModel>
Sau đó, bạn không cần một tập tin .svc vật lý cũng không phải là toàn cầu .asax
Tệp .svc và global.asax có thể trong vấn đề này được xem là "không được chấp nhận" không? –
- 1. Mối quan hệ giữa GEF và GMF?
- 2. Mối quan hệ giữa appdelegate và main.m
- 3. Mối quan hệ giữa môi trường và dự án trong virtualenvwrapper là gì?
- 4. XCode3 - mối quan hệ giữa Đường dẫn Tìm kiếm Thư viện và Khung dự án
- 5. Tệp của tiến trình, mối quan hệ giữa các tệp trong mm_struct và files_struct?
- 6. IDbSetExtensions.AddOrUpdate và các mối quan hệ
- 7. Mối quan hệ giữa HttpContext.Request.Cookies và HttpContext.Response.Cookies
- 8. Mối quan hệ giữa UIView và CALayer
- 9. mối quan hệ giữa log4j và apache.commons.logging
- 10. Sqlalchemy, mối quan hệ và mối quan hệ
- 11. Tìm hiểu các mối quan hệ và mối quan hệ dữ liệu của Orchard
- 12. Mối quan hệ giữa việc vẽ các gói trong R
- 13. GreenDAO hỗ trợ nhiều mối quan hệ giữa các bảng
- 14. Duy trì mối quan hệ hai chiều giữa các lớp
- 15. Mối quan hệ giữa nhiều mối quan hệ giữa nhiều mô hình
- 16. mối quan hệ giữa cấu hình trong app.config hoặc web.config và mã trong WCF
- 17. Mối quan hệ giữa Spring, Hibernate, JDBC
- 18. Mối quan hệ giữa AppDelegate, RootViewController và UIApplication là gì?
- 19. mối quan hệ giữa GC, Finalize() và Dispose là gì?
- 20. Mối quan hệ giữa ghc-pkg và cabal là gì?
- 21. Mối quan hệ giữa "đống" và "đống" là gì?
- 22. C# - Mối quan hệ giữa UDPClient và Socket
- 23. Phân rã một mối quan hệ ternary vào mối quan hệ nhị phân
- 24. Mối quan hệ giữa TypeRep và "Loại" GADT
- 25. Hiểu mối quan hệ giữa glutDisplayFunc và glutPostRedisplay
- 26. Mối quan hệ giữa JTable, TableModel & TableData
- 27. Mối quan hệ giữa Hành khách và Capistrano là gì?
- 28. Mối quan hệ giữa WIC và GDI + là gì?
- 29. Mối quan hệ giữa Cobertura và chắc chắn hơn
- 30. Mối quan hệ giữa Hadoop và cơ sở dữ liệu
Tôi có thể lưu trữ dịch vụ của mình ở đâu khác? –
Ba điều bạn cần lưu ý là: Máy chủ lưu trữ tùy chỉnh mà bạn viết, máy chủ được cung cấp bên thứ ba mà bạn mua hoặc Dịch vụ Windows. http://msdn.microsoft.com/en-us/library/bb332338.aspx – Cheeso