<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web API on 冯威的博客</title><link>https://fwhyy.com/tags/web-api/</link><description>Recent content in Web API on 冯威的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 08 Apr 2017 00:01:55 +0800</lastBuildDate><atom:link href="https://fwhyy.com/tags/web-api/atom.xml" rel="self" type="application/rss+xml"/><item><title>OWA实现添加水印</title><link>https://fwhyy.com/2017/04/adding-watermark-to-owa/</link><pubDate>Sat, 08 Apr 2017 00:01:55 +0800</pubDate><guid>https://fwhyy.com/2017/04/adding-watermark-to-owa/</guid><description>&lt;p&gt;&lt;code&gt;OWA&lt;/code&gt;全称&lt;code&gt;Office Web App&lt;/code&gt;，是用来做&lt;code&gt;Office&lt;/code&gt;文档预览的一个很好的工具。现在客户有要求，需要在预览界面中添加水印。想起之前写的一篇文章&lt;a href="http://fwhyy.com/2015/06/office-web-app-preview-remove-top-menu/"&gt;《Office Web APP预览去掉顶部菜单》&lt;/a&gt;，就是通过修改样式来控制&lt;code&gt;OWA&lt;/code&gt;的预览界面的。&lt;/p&gt;
&lt;p&gt;通过&lt;code&gt;F12&lt;/code&gt;查看&lt;code&gt;OWA&lt;/code&gt;预览&lt;code&gt;Word&lt;/code&gt;的界面，发现&lt;code&gt;Word&lt;/code&gt;的每一页会被渲染在一个&lt;code&gt;Img&lt;/code&gt;中展示，如下图：&lt;/p&gt;</description></item><item><title>在Windows Server2008R2中部署WebAPI</title><link>https://fwhyy.com/2015/09/deploy-webapi-in-windows-server2008/</link><pubDate>Wed, 16 Sep 2015 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2015/09/deploy-webapi-in-windows-server2008/</guid><description>&lt;p&gt;一直以来都是在win8或windows server2012中进行asp.net mvc或webapi程序的部署，没有发现任何问题。今天在win2008中进行asp.net webapi的部署，访问api的时候页面显示404错误。下面步骤将解决asp.net webapi在win2008中的部署问题。&lt;/p&gt;</description></item><item><title>jQuery跨域调用Asp.Net Web API</title><link>https://fwhyy.com/2015/08/jquery-cros-access-asp-net-web-api/</link><pubDate>Sat, 15 Aug 2015 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2015/08/jquery-cros-access-asp-net-web-api/</guid><description>&lt;p&gt;Asp.Net Web API是一个轻量级的Web服务，当Web API和Web程序不是部署在同一域的时候，要使用jQuery来实现调用API的接口就存在跨域的问题。下面介绍两种方式来解决jQuery调用API跨域的问题。&lt;/p&gt;</description></item><item><title>Office Web App 2013发布在外网进行预览</title><link>https://fwhyy.com/2015/06/office-web-app-2013-preview-in-external/</link><pubDate>Sat, 20 Jun 2015 00:00:00 +0800</pubDate><guid>https://fwhyy.com/2015/06/office-web-app-2013-preview-in-external/</guid><description>&lt;p&gt;Office Web App是用来做Office文档预览的一个很好的工具，网上的很多资料大都是跟SharePoint集成、Lync集成等，并且基本都是在内网部署。本文主要介绍下怎样在外网部署实现预览功能。&lt;/p&gt;
&lt;h2 id="安装"&gt;安装&lt;/h2&gt;
&lt;p&gt;OWA的安装可以参考下面链接：&lt;/p&gt;
&lt;p&gt;&lt;a href="https://technet.microsoft.com/zh-cn/library/jj219455.aspx"&gt;https://technet.microsoft.com/zh-cn/library/jj219455.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;有关安装OWA的PowerShell命令可以参考下面链接：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://technet.microsoft.com/zh-cn/library/ee890080.aspx"&gt;http://technet.microsoft.com/zh-cn/library/ee890080.aspx&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="准备工作"&gt;准备工作&lt;/h2&gt;
&lt;p&gt;OWA不能安装在域控上，所以必须准备两台服务器，如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;域控服务器
&lt;ul&gt;
&lt;li&gt;服务器版本：Windows Server2012R2&lt;/li&gt;
&lt;li&gt;域名：fwhyy.com&lt;/li&gt;
&lt;li&gt;内网IP：10.15.3.160&lt;/li&gt;
&lt;li&gt;外网IP：100.180.100.180&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;OWA服务器
&lt;ul&gt;
&lt;li&gt;服务器版本：Windows Server2012R2&lt;/li&gt;
&lt;li&gt;完整机器名：owa.fwhyy.com&lt;/li&gt;
&lt;li&gt;内网IP：10.15.3.180&lt;/li&gt;
&lt;li&gt;外网IP：100.180.100.181&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;申请外网域名：owa.fwhyy.com，绑定到OWA服务器的外网IP：100.180.100.181&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="部署"&gt;部署&lt;/h2&gt;
&lt;p&gt;1.在OWA服务器上执行下面PowerShell命令：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;New-OfficeWebAppsFarm -InternalUrl &amp;#34;http://10.15.3.180&amp;#34; -AllowHttp -EditingEnabled -OpenFromUrlEnabled
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注意InternalUrl 需要配置内网IP&lt;/p&gt;
&lt;p&gt;2.命令成功执行后，会在IIS中创建两个站点，如下图：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/3cefded1gw1etayjjaz24j20ea0530ta.webp" alt="3cefded1gw1etayjjaz24j20ea0530ta" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;3.在浏览器中输入：&lt;a href="http://owa.fwhyy.com/hosting/discovery"&gt;http://owa.fwhyy.com/hosting/discovery&lt;/a&gt;会得到一个放回xml结果的页面，&lt;strong&gt;该xml文件中显示的地址为内网IP，需要将内网IP换成域名：owa.fwhyy.com&lt;/strong&gt;。保存该页面为discovery.xml文件留作备用。不同类型的文档会指向不同的页面来做预览，生成预览链接时会用到discovery.xml文件。&lt;/p&gt;
&lt;p&gt;4.如果要将OWA的预览功能和自己的应用程序进行整合，还需要有一个Web API程序进行辅助，有关这部分内容可以参考下面链接：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/poissonnotes/p/3267190.html"&gt;http://www.cnblogs.com/poissonnotes/p/3267190.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/poissonnotes/p/3277280.html"&gt;http://www.cnblogs.com/poissonnotes/p/3277280.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;具体请求流程参见下图：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/3cefded1gw1etazsxxv5aj20dl0e1t96.webp" alt="3cefded1gw1etazsxxv5aj20dl0e1t96" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;5.除了discovery.xml中的地址需要修改为域名，其他所有涉及到有请求的地方全部使用内网IP。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结&lt;/h2&gt;
&lt;p&gt;外网访问其实关键的是需要注意三点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用PowerShell命令创建站点时使用内网IP；&lt;/li&gt;
&lt;li&gt;需要用域名进行访问，并且申请的域名必须和OWA服务器的完整机器名一致；&lt;/li&gt;
&lt;li&gt;只有discovery.xml中的地址需要为域名，其他所有都是用内网IP。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;后面会单独开篇来写一个简单的示例，包含改造后的WopiHosting部分。&lt;/p&gt;</description></item></channel></rss>