Пытаясь следовать этому учебному пособию по MSDN, чтобы получить веб-ответ, но не получите ответ, поэтому мне интересно, могу ли я использовать что-либо еще, кроме учетных данных по умолчанию или сетевых учетных данных для отправки веб-запроса.
Я использую его в задании таймера Sharepoint, установленном с использованием Feature Receiver, вот код,
Класс задания таймера с методом execute
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using System.Diagnostics;
namespace EmailJob.FeatureCode
{
class SharePointWarmupJob : SPJobDefinition
{
private const string JOB_NAME = "Email Job";
public SharePointWarmupJob() : base() { }
public SharePointWarmupJob(SPWebApplication webApp)
: base(JOB_NAME, webApp, null, SPJobLockType.ContentDatabase)
{
this.Title = JOB_NAME;
}
public override void Execute(Guid targetInstanceId)
{
Debug.Assert(false);
if (this.WebApplication.Sites.Count > 0)
WarmUpSharePointSite(this.WebApplication.Sites[0]);
}
private void WarmUpSharePointSite(SPSite siteCollection)
{
System.Net.WebRequest request = System.Net.WebRequest.Create(siteCollection.Url);
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Method = "GET";
System.Net.WebResponse response = request.GetResponse();
response.Close();
}
}
}
Класс приемника функций
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using EmailJob.FeatureCode;
namespace EmailJob
{
class EmailJobFeature : SPFeatureReceiver
{
private const string JOB_NAME = "Email Job";
public override void FeatureInstalled(SPFeatureReceiverProperties properties)
{
throw new NotImplementedException();
}
public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
{
throw new NotImplementedException();
}
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
if (webApp == null)
throw new NotImplementedException("Error obtaining reference to Web application");
foreach (SPJobDefinition job in webApp.JobDefinitions)
if (job.Name == JOB_NAME) job.Delete();
SharePointWarmupJob warmupJob = new SharePointWarmupJob(webApp);
SPMinuteSchedule schedule = new SPMinuteSchedule();
schedule.BeginSecond = 0;
schedule.EndSecond = 59;
schedule.Interval = 5;
warmupJob.Schedule = schedule;
warmupJob.Update();
}
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
if (webApp == null)
throw new NotImplementedException("Error obtaining reference to Web application");
foreach (SPJobDefinition job in webApp.JobDefinitions)
if (job.Name == JOB_NAME) job.Delete();
throw new NotImplementedException();
}
}
}
Когда я пытаюсь отладить, он не дает ответа в строке кода
"System.Net.WebResponse response = request.GetResponse();"
Это мой VPC, и я вошел в систему как администратор, я даже закомментировал строку кода учетных данных или попробовал сетевые учетные данные, но, похоже, это просто не работает.
О, да, когда я пытаюсь протестировать код в Консольном приложении, он говорит, что свойства учетных данных равны нулю, кроме encrypt = true
Ура!