WCF Ria调用方法并未找到

时间:2013-12-07 14:22:14

标签: c# wcf silverlight-5.0 wcf-ria-services ria

我正在使用Silverlight 5的WCF RIA,我使用LinqToSqlDomainService。

我有一个类似的这个

[EnableClientAccess()]
public class UsersAndGroups : LinqToSqlDomainService<DataBaseDataContext> {
    protected override DataBaseDataContext CreateDataContext() {
        return DataBaseConnection.GetNewDataBaseContext();
    }

    public tblUsersAndGroup Web_CanLogin(string userName, string password) {
        ...
    }

    //Will call without error
    [Invoke]
    public List<spSelectVwUsersAndGroupsResult> Web_SelectView(
                                                 BLL.tblUsersAndGroup logedInUser) 
    {
        ...
    }
}

当我在这个课程中调用方法时,每件事情都可以。

我有另一个班级:

[EnableClientAccess()]
public class Privileges : MyLinqToSqlDomainService<DataBaseDataContext> {
    protected override DataBaseDataContext CreateDataContext() {
        return DataBaseConnection.GetNewDataBaseContext();
    }

    //Will not call and get error!
    [Invoke]
    public List<spSelectVwUsersAndGroupsResult> Web_SelectView(
                                                 BLL.tblUsersAndGroup logedInUser) 
    {
        ...
    }

    //Will call without error!
    [Invoke]
    public List<spSelectVwUsersAndGroupsResult> Web_SelectViewWithNoParam() {
        ...
    }
}

当我在之前的calss中创建与Web_SelectView完全相同的方法时,当我调用它时,我得到“远程服务器返回错误:NotFound”。错误。

当我删除参数时,它会起作用,并且不会向我显示错误,方法会调用。

我看到有关此错误的链接:

http://blogs.objectsharp.com/post/2010/04/13/WCF-RIA-Services-%E2%80%9CNot-Found%E2%80%9D-Error-Message.aspx

我在浏览器的网络选项卡中看到开发者工具,我看到调用此方法时会调用但返回未找到,结果为500。

此外,我将这些代码放在我的网络配置中,但我没有在事件日志中看到任何有意义的错误

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" 
                switchValue="Information, ActivityTracing" 
                propagateActivity="true" >
        <listeners>
            <add name="xml"/>
        </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging">
        <listeners>
            <add name="xml"/>
        </listeners>
    </source>
    <source name="myUserTraceSource" 
            switchValue="Information, ActivityTracing">
        <listeners>
            <add name="xml"/>
        </listeners>
    </source>
    </sources>
    <sharedListeners>
        <add name="xml" 
             type="System.Diagnostics.XmlWriterTraceListener" 
             initializeData="C:\logs\Traces.svclog" />
    </sharedListeners>
</system.diagnostics>

<system.serviceModel>
    <diagnostics wmiProviderEnabled="true">
        <messageLogging logEntireMessage="true" 
                        logMalformedMessages="true" 
                        logMessagesAtServiceLevel="true" 
                        logMessagesAtTransportLevel="true" 
                        maxMessagesToLog="3000" />
    </diagnostics>
</system.serviceModel>

更新

我编辑我的web config switchValue =“Information,ActivityTracing”to switchValue =“All”,现在我可以看到错误:

  

WebHost无法处理请求。发件人信息:   System.ServiceModel.ServiceHostingEnvironment + HostingManager / 12036987   异常:System.ServiceModel.ServiceActivationException:服务   由于异常,无法激活'/Services/BLL-Privileges.svc'   在编译期间。异常消息是:操作命名   'Web_GetPrivileges'不符合所需的签名。   参数类型必须是实体或复杂类型,集合   实体或复杂类型,或预定义的可序列化之一   类型.. ---&gt; System.InvalidOperationException:名为的操作   'Web_GetPrivileges'不符合所需的签名。   参数类型必须是实体或复杂类型,集合   实体或复杂类型,或预定义的可序列化之一   类型。

但是为什么“名为'Web_GetPrivileges'的操作不符合所需的签名。”什么时候在上课时工作!!!

第二次编辑:

当我删除[Invoke]属性时,没有错误事件会注册... 但我再次找不到!当我在浏览器开发者工具中看到没有代码会回复给我,没有200,没有500,或任何其他....

由于

0 个答案:

没有答案