小编Fre*_*eek的帖子

在ASP.NET中管理实体框架ObjectContext

我正在使用实体框架的ASP.NET Web窗体应用程序,我想知道我应该如何处理ObjectContext它的生命周期.例如,我有一个InviteService管理邀请的类,例如创建和接受邀请.该类本身位于Web项目的另一个项目/命名空间中.一种InviteUsers()方法创建Invite了一个用户列表的实体,调用库将它们保存到数据库和邮件的每个用户的邀请链接.

Page用户单击邀请按钮时调用该方法.

我想知道我该怎么用 ObjectContext

  1. ObjectContext在每个Request上的Page上实例化一个new ,将其作为参数传递给InviteService类的构造函数,然后将其置于Render方法中.
  2. 与上面相同,但不是通过构造函数设置它,而是将它作为参数传递给每个方法.
  3. Objectcontext使用using块在每个方法中创建单独的.

根据Ladislav的答案,选项一对我来说似乎最好:实体框架和连接池 但是选项3似乎也是有效的,因为据我所知,由于连接池没有建立新的数据库连接.

.net asp.net ado.net entity-framework objectcontext

4
推荐指数
1
解决办法
3773
查看次数

如何使用REST/SOAP端点发布WCF 4.0服务的WSDL

我正在创建一个WCF4服务,其REST和SOAP端点将在IIS 7.5中托管.我以WCF4 REST模板为例.但是到目前为止我对我的设置有几个问题.

这是我的webconfig

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <behaviors>
        <endpointBehaviors>
            <behavior name="REST">
                <webHttp helpEnabled="true"/>
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="MEXGET">
                <serviceMetadata httpGetEnabled="true"/>
                <serviceDebug includeExceptionDetailInFaults="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <services>
        <service behaviorConfiguration="MEXGET" name="Project.WebService.VehicleService">
            <endpoint 
                address="" 
                behaviorConfiguration="REST" 
                binding="webHttpBinding" 
                contract="Project.WebService.IVehicleService" />
            <endpoint 
                address="soap" 
                binding="basicHttpBinding" 
                contract="Project.WebService.IVehicleService" />
            <endpoint 
                address="mex" 
                binding="mexHttpBinding" 
                contract="IMetadataExchange" />
        </service>
    </services>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

我删除了standardEndpoints部分并添加了自己的端点.没有.svc文件,因为我在global.asax中设置了路由,如下所示

private void RegisterRoutes()
{
    RouteTable.Routes.Add(new ServiceRoute("VehicleService", new WebServiceHostFactory(), typeof(VehicleService)));
}
Run Code Online (Sandbox Code Playgroud)

可以通过http:// localhost:1313/ServiceTest/VehicleService/help访问帮助页面

我还使用WCF测试客户端访问http:// localhost:1313/ServiceTest/VehicleService/mex ,它显示了SOAP端点的元数据

但是,如何检索服务的WSDL?

使用svc文件,我可以在http:// localhost:1313/ServiceTest/VehicleService.svc找到wsdl ?wsdl但是我没有.svc文件.我也无法在http:// localhost:1313/ServiceTest/VehicleService?wsdlhttp:// localhost:1313/ServiceTest/VehicleService/soap?wsdl …

rest wcf soap wsdl web-services

3
推荐指数
1
解决办法
1万
查看次数