这个错误非常普遍,我尝试了所有的解决方案,但没有解决.我在控制面板中禁用了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)
有什么建议?
我们正在编写一个MS Outlook插件.为了满足我们的业务逻辑,它应检查某些日期之间的所有约会.从日历中检索所有项目时遇到了一些问题.我们尝试了两种选择:
Outlook API.我们使用MSDN中描述的标准逻辑 - 按[开始]对项目进行排序,设置IncludeRecurrences
为True
日历项目并在此处运行Find\Restrict查询.它在我们的测试环境中工作正常.但是,在我们客户的环境中:对于定期约会,开始和结束日期设置为"主约会"的相应日期.例如,在某个房间的日历中,我们有一个在1月创建的每周约会,如果我们试图在8月找到所有项目,我们会获得此定期约会的四个项目,但其开始和结束日期设置为1月.但Outlook在同一日历中显示正确的日期...
很糟糕,但我们还有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) 我必须开发一个Java应用程序,它必须读取网络上的一些文件,编辑它们并将它们放回去.
问题是我总是通过FTP协议(通过网络)进行文件操作.但是,我最近听说过基于HTTP的Webdav.
有没有人注意到它们之间的差异(就速度而言)?哪一个是最好的 ?如果FTP有利于他们,为什么他们"发明"Webdav呢?
我正在开发一个服务器的自定义实现(非常基本的WebDAV),它接受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).任何建议在哪里寻找这样的东西都是个好主意?
我正在用PHP编写CMS应用程序,其中一个要求是它必须能够与客户的Exchange服务器连接.我之前已经写了几次这个功能,并且一直使用WebDAV来做这件事,但现在我不再那么做了.
我将在Windows服务器2008上运行IIS或Apache(无首选项)上的站点.我需要做的一些事情包括向给定用户的地址簿添加联系人,以给定用户身份发送电子邮件以及运行联系人的报告用户.
所有这些对于WebDAV来说都很容易,但如果有更好的方法不需要任何可能很快就被弃用的功能.
有任何想法吗?
Justin,我喜欢使用com对象的想法,我只是担心维护第三个产品以使一切工作......
John,我可以用C#编写一个Web服务来连接这些函数并使用我的PHP应用程序访问它,但它也有点偏僻.
到目前为止,我并不是100%确信其中任何一个都比WebDAV更好......
任何人都可以告诉我我在哪里傻吗?
我想在我的应用程序中实现一个上传和操作WebDAV服务器上的文件的功能.我正在寻找一个成熟的Python库,它将提供类似于os.*
使用远程文件的模块的接口.谷歌搜索已经为Python中的WebDAV提供了一些选项,但我想知道这些日子有哪些更广泛使用.
我有一个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代码的讨论.
有什么想法吗?
假设我有支持WebDAV的服务器,我有很多Office文档.我想生成一个链接到文档的网页,点击该链接将打开Microsoft Word.Word将从WebDAV服务器下载文档,当用户完成编辑文档时,MS Word会将其上传回来.
我知道MS Word(和其他Office程序)支持编辑存储在WebDAV服务器上的文档.我不知道的是,如何生成链接,这将触发MS Word自行下载此文档.
可能吗?也许使用一些特殊的方案?