标签: webdav

405方法不允许使用web api

这个错误非常普遍,我尝试了所有的解决方案,但没有解决.我在控制面板中禁用了WebDAV发布,并将其添加到我的Web配置文件中:

  <handlers>
  <remove name="WebDAV"/>
  </handlers>
  <modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule"/>
  </modules>
Run Code Online (Sandbox Code Playgroud)

错误仍然存​​在.这是控制器:

   static readonly IProductRepository repository = new ProductRepository();

    public Product Put(Product p)
    {
        return repository.Add(p);
    }
Run Code Online (Sandbox Code Playgroud)

方法实施:

 public Product Add(Product item)
    {
        if (item == null)
        {
            throw new ArgumentNullException("item");
        }
        item.Id = _nextId++;
        products.Add(item);
        return item;
    }
Run Code Online (Sandbox Code Playgroud)

这就是引发异常的地方:

client.BaseAddress = new Uri("http://localhost:5106/");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));      
var response = await client.PostAsJsonAsync("api/products", product);//405 exception
Run Code Online (Sandbox Code Playgroud)

有什么建议?

c# webdav asp.net-web-api

82
推荐指数
9
解决办法
20万
查看次数

检索显示奇怪行为的日历项(Outlook API,WebDAV)

我们正在编写一个MS Outlook插件.为了满足我们的业务逻辑,它应检查某些日期之间的所有约会.从日历中检索所有项目时遇到了一些问题.我们尝试了两种选择:

  1. Outlook API.我们使用MSDN中描述的标准逻辑 - 按[开始]对项目进行排序,设置IncludeRecurrencesTrue日历项目并在此处运行Find\Restrict查询.它在我们的测试环境中工作正常.但是,在我们客户的环境中:对于定期约会,开始和结束日期设置为"主约会"的相应日期.例如,在某个房间的日历中,我们有一个在1月创建的每周约会,如果我们试图在8月找到所有项目,我们会获得此定期约会的四个项目,但其开始和结束日期设置为1月.但Outlook在同一日历中显示正确的日期...

  2. 很糟糕,但我们还有WebDAV!我们编写一个简单的测试应用程序,并尝试使用WebDAV查询日历中的所有项目.当然,我们没有重新发明轮子,只是粘贴了文档中的代码.之前的问题已经解决,但下一个问题出现了:它不会返回大约六个月前创建的重复项目.我没有线索 - 没有限制'旧'项目的参数!

怎么了?我们缺少重要的东西吗?

技术细节:Exchange 2003,Outlook 2003-2010.坦率地说,如果我们打开缓存Exchange模式,第一个错误就会消失,但我们不能这样做.

var nameSpace = application.GetNamespace("MAPI");
var recepient = nameSpace.CreateRecipient(roomEMail);
recepient.Resolve();
var calendar = nameSpace.GetSharedDefaultFolder(recepient, OlDefaultFolders.olFolderCalendar);
var filter = string.Format("[Start]<'{1}' AND [End]>'{0}'",
  dateFrom.ToString("dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture), dateTo.ToString("dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture)
);
var allItems = calendar.Items;
allItems.Sort("[Start]");
allItems.IncludeRecurrences = true;
var _item = allItems.Find(filter);
while (_item != null) {
  AppointmentItem item = _item as AppointmentItem;
  if (item != null) {
    if (item.Subject != "some …
Run Code Online (Sandbox Code Playgroud)

outlook exchange-server webdav outlook-object-model

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

哪种文件访问最好:Webdav还是FTP?

我必须开发一个Java应用程序,它必须读取网络上的一些文件,编辑它们并将它们放回去.

问题是我总是通过FTP协议(通过网络)进行文件操作.但是,我最近听说过基于HTTP的Webdav.

有没有人注意到它们之间的差异(就速度而言)?哪一个是最好的 ?如果FTP有利于他们,为什么他们"发明"Webdav呢?

ftp webdav

65
推荐指数
5
解决办法
9万
查看次数

发布Outlook日历.同步频率的服务器端设置是什么?

我正在开发一个服务器的自定义实现(非常基本的WebDAV),它接受Outlook发布的日历.

Outlook似乎有一个设置(参见下面的屏幕截图),它接受服务器的参数,告诉它重新发布日历的频率,这是我想要弄清楚的参数.

Outlook的选项允许服务器指定建议的频率

如果设置未指定的Outlook默认到60分钟,这不为我工作,但我找不到什么参数可以是任何信息(我知道,Outlook的设置可以在UI内进行调整,但我需要它通过自动完成来自服务器的响应).使用Wireshark时,我发现当第一次发布日历时,Outlook会向PROPFIND服务器的URL 发送一个方法:

PROPFIND /path/to/url HTTP/1.1
X-Office-Version: 15.0.4771
Depth: 1
Content-Type: text/xml
User-Agent: Microsoft Office/15.0 (Windows NT 6.3; Microsoft Outlook 15.0.4771; Pro)
Host: example.com
Content-Length: 114
Connection: Keep-Alive
Cache-Control: no-cache

<?xml version="1.0" encoding="utf-8" ?> <D:propfind xmlns:D="DAV:"><D:prop><D:resourcetype/></D:prop></D:propfind>
Run Code Online (Sandbox Code Playgroud)

然后用XML响应(我假设这是设置的位置,但无法找到任何信息):

<?xml version="1.0"?><a:multistatus xmlns:a="DAV:"/>
Run Code Online (Sandbox Code Playgroud)

我在这一点上丢失,不知道还有什么地方寻找大量的谷歌搜索和流量嗅探后(展望< - >我发现交流沟通,但没有人可以使用非默认PARAM).任何建议在哪里寻找这样的东西都是个好主意?

outlook exchange-server calendar webdav caldav

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

使用PHP访问Exchange的最佳方法?

我正在用PHP编写CMS应用程序,其中一个要求是它必须能够与客户的Exchange服务器连接.我之前已经写了几次这个功能,并且一直使用WebDAV来做这件事,但现在我不再那么做了.

我将在Windows服务器2008上运行IIS或Apache(无首选项)上的站点.我需要做的一些事情包括向给定用户的地址簿添加联系人,以给定用户身份发送电子邮件以及运行联系人的报告用户.

所有这些对于WebDAV来说都很容易,但如果有更好的方法不需要任何可能很快就被弃用的功能.

有任何想法吗?

更新:

Justin,我喜欢使用com对象的想法,我只是担心维护第三个产品以使一切工作......

John,我可以用C#编写一个Web服务来连接这些函数并使用我的PHP应用程序访问它,但它也有点偏僻.

到目前为止,我并不是100%确信其中任何一个都比WebDAV更好......

任何人都可以告诉我我在哪里傻吗?

php windows mapi exchange-server webdav

52
推荐指数
9
解决办法
5万
查看次数

用于WebDAV上载的命令行实用程序

我需要一个可以执行WebDAV上传(HTTP PUT)的命令行实用程序.

webdav

52
推荐指数
6
解决办法
6万
查看次数

Java WebDAV客户端库

您可以推荐哪些Java WebDAV客户端库?

java webdav client-side

25
推荐指数
3
解决办法
3万
查看次数

WebDAV的Python客户端库

我想在我的应用程序中实现一个上传和操作WebDAV服务器上的文件的功能.我正在寻找一个成熟的Python库,它将提供类似于os.*使用远程文件的模块的接口.谷歌搜索已经为Python中的WebDAV提供了一些选项,但我想知道这些日子有哪些更广泛使用.

python client webdav

24
推荐指数
3
解决办法
2万
查看次数

在OSX上打开WebDAV word文件

我有一个Java应用程序,可以在MS Word上打开WebDAV文件.使用下一个代码在Windows上成功运行:

Runtime.getRuntime().exec("cmd /c start winword " + webdavUrl);
Run Code Online (Sandbox Code Playgroud)

但在Mac OSX上,这是不可能的.我试过这个功能,但它只打开一个空白文件:

Runtime.getRuntime().exec(new String[]{"open", "-a", "Microsoft Word", webdavUrl});
Run Code Online (Sandbox Code Playgroud)

如果我从URL创建一个文件,我可以打开该文件,但我失去了对WebDav URL的引用.

我找到了一个关于可以从浏览器执行此过程的JavaScript代码的讨论.

有什么想法吗?

java macos webdav ms-word

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

如何创建强制MS Word在webdav服务器上编辑文档的HTML链接

假设我有支持WebDAV的服务器,我有很多Office文档.我想生成一个链接到文档的网页,点击该链接将打开Microsoft Word.Word将从WebDAV服务器下载文档,当用户完成编辑文档时,MS Word会将其上传回来.

我知道MS Word(和其他Office程序)支持编辑存储在WebDAV服务器上的文档.我不知道的是,如何生成链接,这将触发MS Word自行下载此文档.

可能吗?也许使用一些特殊的方案?

document webdav ms-word hyperlink ms-office

18
推荐指数
3
解决办法
2万
查看次数