【问题标题】:WCF Service Security Exception caused when trying to access data via LINQ to SQL尝试通过 LINQ to SQL 访问数据时导致 WCF 服务安全异常
【发布时间】:2010-04-15 14:27:09
【问题描述】:

我目前正在开始学习 WCF,因为它们提供的一些概念和功能看起来很有趣,并且在我正在进行的项目中也很有用。

到目前为止,我一直在遵循一些非常简单的指南来掌握它,但是在创建我的第一个主机服务之后,在尝试从 SQL 数据库中检索一些数据并收到以下错误之后,我有点陷入困境使用 LINQ to SQL 时:

Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

我环顾四周,看到了一些关于如何解决此问题的建议,但似乎没有一个适用,因为我正在创建一个纯粹用于测试的简单 WCF 服务库。

代码在以下行出错:

me = aDb.Messages.ToList();

项目本身保存在远程驱动器上,但是当我运行调试时在本地运行,但是数据库是再次位于远程的测试服务器。所有 SQL 凭据都是正确的,因为连接测试成功并且我检查了连接字符串。最后,该服务作为 basicHttp 运行,您可以在下面看到我的所有代码,因此,如果您对如何停止错误有任何想法,将不胜感激。

namespace AnnouncementServiceLibrary
{
    [ServiceContract]
    public interface IConnect
    {
        [OperationContract]
        List<Mess> ConnectUser(string userId);
    }
}

namespace AnnouncementServiceLibrary
{
    public class AnnounceService : IAnnounceService
    {
#region IConnect Members

        public List<Mess> ConnectUser(string userId)
        {
                List<Mess> mess = new List<Mess>();
                List<Message> me;
                List<MessageLink> messLink;

                AnnouncementDBDataContext aDb = new AnnouncementDBDataContext();

                me = aDb.Messages.ToList();
                messLink = aDb.MessageLinks.ToList();

                var result = (from a in messLink
                              join b in me
                                  on a.UniqueID equals b.UniqueID
                              where a.UserID == userId
                              select new { b.UniqueID, b.Author, b.Title, b.Body, b.Priority, a.Read, b.TimeRecieved }).
                    DefaultIfEmpty();

                foreach (var a in result)
                {
                    mess.Add(new Mess(a.UniqueID, a.Author, a.Title, a.Body, a.Priority, (bool)a.Read, a.TimeRecieved));
                }
                return mess;
        }
        #endregion
    }
}

【问题讨论】:

    标签: c# wcf security service


    【解决方案1】:

    这可能都与您的应用程序是从网络共享构建的事实相关联。看看这个:http://blogs.msdn.com/shawnfa/archive/2003/06/20/57023.aspx

    【讨论】:

    • 谢谢没看到那个,请给我一些代表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2011-01-25
    • 1970-01-01
    相关资源
    最近更新 更多