ファーム ソリューションとして展開したカスタム SharePoint Web パーツがあり、SharePoint リストへの書き込みに問題があります。AllowUnsafeUpdates を (さまざまな場所で) True に設定し、SPListItem update を呼び出す前に SPWeb オブジェクトを更新しているにもかかわらず、プログラムでリストに書き込むときに次のようなエラー メッセージが表示されます。
現在、GET リクエストでの更新は許可されていません。GET での更新を許可するには、SPWeb で 'AllowUnsafeUpdates' プロパティを設定します。
RunWithElevatedPrivileges も使用してみましたが、うまくいきませんでした。
参照用の私のコードは次のとおりです。
public void WriteError(string errorTask, string errorMessage)
{
string task = "Error Log Entry";
string fileName = "";
string fileTitle = "";
string fileType = "";
using (SPSite oSiteCollection = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb oWebsite = oSiteCollection.RootWeb)
{
oSiteCollection.AllowUnsafeUpdates = true;
oWebsite.AllowUnsafeUpdates = true;
oWebsite.Update();
SPSite errorLogSite = new SPSite(oWebsite.ServerRelativeUrl);
SPListItemCollection oList = errorLogSite.RootWeb.Lists["ErrorLog"].Items;
SPListItem oItem = oList.Add();
oItem["ErrorTask"] = task + ": " + errorTask;
oItem["ErrorMessage"] = errorMessage;
oItem["UserName"] = String.IsNullOrEmpty(UserName) ? "Not Available" : UserName;
oItem["FileName"] = String.IsNullOrEmpty(fileName) ? "Not Available" : fileName;
oItem["Title"] = String.IsNullOrEmpty(fileTitle) ? "Not Available" : fileTitle;
oItem["FileType"] = String.IsNullOrEmpty(fileType) ? "Not Available" : fileType;
oItem.Update();
}
}
}