标签: application-pool

跨应用程序池的SharePoint列表访问

我有一个要求,我需要能够从位于我的Web前端(WFE)的应用程序页面访问位于管理中心的列表.我遇到的问题是我的WFE的应用程序池用户无法访问SharePoint_AdminContent数据库,所以我被拒绝访问,他们都有自己的应用程序池

在日志中显示以下内容:

  • 恢复处理身份
  • SqlConnection.Open之前的当前用户:名称:SharePointDemo\SPContentPool SID:S-1-5-20 ImpersonationLevel:None
  • SqlConnection.Open之后的当前用户:名称:SharePointDemo\SPContentPool:S-1-5-20 ImpersonationLevel:无
  • SQL Server实例"SPNSQL"上数据库"SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275"中用户"SPContentPool"的SQL数据库权限不足.SQL Server的其他错误信息包含在下面.对象'proc_EnumLists',数据库'SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275',架构'dbo'上的EXECUTE权限被拒绝.

我试图运行一些特权,以及尝试使用SharePoint\System用户令牌的Daniel Larsons方法(http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!1919.entry),但它似乎只是提升为高为应用程序池.

我希望有一种简单的方法可以模拟管理Web应用程序的应用程序池,但是仍然无法找到这样做的方法......或者将进程标识更改为可以访问的进程标识

感谢您的任何想法,想法或解决方案!

菲尔

c# sharepoint web-applications application-pool elevated-privileges

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

使用大量内存的IIS应用程序池进程

我的一个IIS应用程序池进程有一个非常奇怪的问题.我最近得到了一个System.OutOfMemoryException错误,并且我一直试图找出究竟发生了什么.基本上我有一个脚本,它使用Web服务从我们的DAM获取文件.然后检查文件存储一个字节数组,然后使用Response输出文件.唯一一个遇到问题的是PDF,当它们超过20MB时,它们似乎有时会导致错误.如果我增加应用程序池中的内存,它会暂时解决问题.我看了w3wp.exe进程,看到有时当我运行这个脚本时,它会将内存增加到400MB,我们拥有的最大文件是45MB,这将导致这种类型的行为发生.问题似乎每天晚上都会消失,早上它会工作一段时间然后再开始做同样的事情.这个应用程序是c#asp.net应用程序.它在sharepoint内部运行.

在观看了一段时间后,我注意到,由于这些PDF在浏览器窗口中呈现,直到文件完全下载,它才会从内存中释放.这是有道理的,但我可以看到这有点像我的问题.如果我有几个人加载文件,平均(没有文件下载)内存使用量为385,000 kb.它可以轻松达到900,000-1,100,000 KB,这是应用程序池的限制.

我不是在寻找一个确切的答案,而是更像是一个方向,因为我完全没有想法.

c# asp.net iis worker-process application-pool

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

如何以编程方式在 IIS 8 上设置应用程序池标识

我正在运行带有 IIS 8 的 Windows Server 2012。我安装了 IIS 6 元数据库兼容性。我一直在尝试找出如何使用 .Net 4.5 更改 IIS 8 的应用程序池标识 - 我找到的所有示例均适用于 IIS 6 和 7。

这是我所拥有的:

public class InternetInformationServices
{
    public void SetApplicationPoolIdentity(string appPoolName, string domain, string username, string password)
    {
        try
        {
            string metabasePath = "IIS://Localhost/W3SVC/AppPools";

            DirectoryEntry myAppPool;
            DirectoryEntry apppools = new DirectoryEntry(metabasePath);
            myAppPool = apppools.Children.Find(appPoolName, "IIsApplicationPool");
            myAppPool.Invoke("AppPoolIdentityType", new Object[] { 3 });
            myAppPool.Invoke("WAMUserName", new Object[] { domain + @"\" + username });
            myAppPool.Invoke("WAMUserPass", new Object[] { password });
            myAppPool.Invoke("SetInfo", null);
            myAppPool.CommitChanges(); …
Run Code Online (Sandbox Code Playgroud)

.net c# iis application-pool iis-8

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

System.UnauthorizedAccessException:拒绝访问路径

下午好,我最近购买了一台以 Plesk 12 作为控制面板的服务器。我没有太多使用 Plesk 的经验。

出于测试目的,我创建了一个简单的 ASP.NET 项目,它尝试从 txt 读取/写入,如下所示:

String logPath = @"C:\inetpub\vhosts\xxx.com\httpdocs\log_application_error.txt";
StreamWriter textWriter = new StreamWriter(logPath, true);
Run Code Online (Sandbox Code Playgroud)

创建 StreamWriter 实例时,出现以下错误:

System.UnauthorizedAccessException: Access to the path 'C:\inetpub\vhosts\xxx.com\httpdocs\log_application_error.txt' is denied.
Run Code Online (Sandbox Code Playgroud)

我尝试授予 txt 文件的读/写权限,甚至将完全控制授予“每个人”,但结果是一样的。

Plesk 似乎隐藏了所有内容,以便通过控制面板进行处理。我在 IIS 上看不到任何应用程序池,所以我什至不确定它运行的身份是什么。

任何帮助将不胜感激。

asp.net iis-7 application-pool plesk unauthorizedaccessexcepti

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

Get-IISAppPool 属性“状态”始终为空

当我键入Get-IISAppPoolStatus属性始终是空的。

Get-IISAppPool | Select-Object Status
Run Code Online (Sandbox Code Playgroud)

应用程序池正在运行,名称正确。

有谁知道为什么?

我不是应用程序池的创建者,这可能是原因吗?

iis powershell webserver application-pool

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

每个应用程序可以运行多少个 Application 对象的实例

我正在阅读以下文章如何正确使用 IHttpModule *

现在让我们想想这个词本身。应用程序池。是的游泳池。这意味着某个 Web 应用程序正在一个池中运行多个 HttpApplication 实例。是多个。否则它不会被称为池。»多少?«你可能会问。只要您知道可能不止一个,这并不重要。我们相信 IIS 可以完成它的工作。它显然做得很好,它使这个事实对我们开发人员完全透明,因此没有多少人完全了解它的内部工作原理。我们依靠其稳健性来提供服务。确实如此。池中的每个 HttpApplication 实例都保留自己的 HTTP 模块列表,用于处理的每个请求。

*

我有一个问题,在什么情况下 Application 对象的多个实例可以为单个应用程序运行。直到现在我才知道每个应用程序存在一个应用程序对象的事实。所以我很想知道每个应用程序可以运行多个实例是真的吗?它是如何决定的?

c# asp.net iis web-applications application-pool

0
推荐指数
1
解决办法
2364
查看次数

关于工作进程线程的困惑

尝试在浏览器的两个不同选项卡中打开以下页面。点击刷新按钮以避免从浏览器缓存中获取页面:

    protected void Page_Load(object sender, EventArgs e)
    {
        Thread.Sleep(10000);
        Response.Write(DateTime.Now.ToString());
    }
Run Code Online (Sandbox Code Playgroud)

如您所见,似乎为每个请求创建了一个线程,并且它们没有相互等待,也没有获取锁。

现在创建以下页面,以及 GlobalCustomClass

全局自定义类

public class GlobalCustomClass
    {
        public static string GlobalVariable
        {
            get;
            set;
        }
    }
Run Code Online (Sandbox Code Playgroud)

默认.aspx

protected void Page_Load(object sender, EventArgs e)
        {
            GlobalCustomClass.GlobalVariable = "Default page";
            Thread.Sleep(10000);
            Response.Write(DateTime.Now.ToString());
            Response.Write("<br />");
            Response.Write(GlobalCustomClass.GlobalVariable);
        }
Run Code Online (Sandbox Code Playgroud)

页面2.aspx

 protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(DateTime.Now.ToString());
            Response.Write("<br />");
            GlobalCustomClass.GlobalVariable = "Page2";
            Response.Write(GlobalCustomClass.GlobalVariable);

        }
Run Code Online (Sandbox Code Playgroud)

刷新默认页面,在 10 秒过去之前,刷新 Page2....Default.aspx 正在呈现“Page2”。是的,它不是线程安全的。

现在试试这个,在两个浏览器选项卡中打开以下页面:

    protected void Page_Load(object sender, EventArgs e)
    {
         Session["x"] = "ABC"; …
Run Code Online (Sandbox Code Playgroud)

architecture asp.net performance application-pool thread-safety

0
推荐指数
1
解决办法
1560
查看次数