这是我第一次使用Sharepoint。这是方案
我在线找到了2种方法,
搜索网页后,我认为jQuery部分不起作用(你可以纠正我)。
我正在寻找一种获取用户名/密码并将pdf文件上传到Sharepoint服务器的方法。以下是我尝试上传但最终错误的C#代码
public bool UploadFile(string file, string destination)
{
bool success = false;
CopySoapClient client = new CopySoapClient();
if (client.ClientCredentials != null)
client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
try
{
client.Open();
string filename = Path.GetFileName(file);
string destinationUrl = destination + filename;
string[] destinationUrls = { destinationUrl };
FieldInformation i1 = new FieldInformation { DisplayName = "Title", InternalName = "Title", Type = FieldType.Text, Value = filename };
FieldInformation[] info = { i1 };
CopyResult[] result;
byte[] data = File.ReadAllBytes(file);
//uint ret = client.CopyIntoItems(filename, destinationUrls, info, data, out result);
uint ret = client.CopyIntoItems(file, destinationUrls, info, data, out result);
if (result != null && result.Length > 0 && result[0].ErrorCode == 0)
success = true;
}
finally
{
if (client.State == System.ServiceModel.CommunicationState.Faulted)
client.Abort();
if (client.State != System.ServiceModel.CommunicationState.Closed)
client.Close();
}
return success;
}
我正在调用上面的函数
UploadFile(@"C:\temp\uploadFile.txt", "http://spf-03:300/demo/Dokumente").ToString();
我得到的错误:
错误代码:目标无效
错误消息:必须在包含目标URL的同一域上调用服务方法“Copy”。
答案 0 :(得分:0)
SharePoint 2010有第三个选项,即使用客户端对象模型。客户端对象模型是较大的Sharepoint API的子集,但它确实涵盖了上载文档。以下是博客文章,上面有一个上传示例。
Upload document through client object model
与SharePoint中的大多数内容一样,您需要对其进行身份验证,因此请确定您的网站集是基于表单还是基于声明,然后您应该能够找到适合您情况的示例代码。
答案 1 :(得分:0)
解决问题的方法:
问题是“安全令牌web服务”无法正常运行,并且在我们手动运行Web服务时出现了一些错误。
由于内部错误,服务器无法处理请求。 有关错误的更多信息,请打开 IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute 或者从服务器上的配置行为)来发送 异常信息返回给客户端,或者按照开启跟踪 Microsoft .NET Framework 3.0 SDK文档并检查 服务器跟踪日志。
上述例外情况属于通用例外。要查看确切的异常,我们从webservice(link)的web.config文件启用了远程错误查看,并查看了确切的异常。 我们找到了异常和服务的解决方案。之后一切正常。