我正在尝试将以下绑定处理策略添加到我的APIM中以进行操作:
<policies>
<inbound>
<base />
<rewrite-uri template="/stores/{Location}/slots?StartDate={StartDateTime}&AppointmentType={AppointmentType}" />
<set-header name="ocp-apim-subscription-key" exists-action="override">
<value>12d0bdd57ca84fa9ad35f13f22605dbf</value>
</set-header>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
我已经找到了该Commandlet,但是没有关于放入-Policy
中的内容的信息。
我尝试使用以下内容
$policyString = '<policies>
<inbound>
<base />
<rewrite-uri template="/stores/{Location}/slots?StartDate={StartDateTime}&AppointmentType={AppointmentType}" />
<set-header name="ocp-apim-subscription-key" exists-action="override">
<value>12d0bdd57ca84fa9ad35f13f22605dbf</value>
</set-header>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>'
Set-AzureRmApiManagementPolicy -Context $apiMgmtContext -ApiId $apiId -Policy $policyString -OperationId 'GetCalendar'
但是它给了我这个错误:
Operation returned an invalid status code 'BadRequest'
“政策”参数期望使用什么格式?
答案 0 :(得分:1)
我可以重现您的问题,> This is not a true way, first you should add the HTML file, then after create a table inside the file.
Now attach a file with StringBuilder.
## Here is my send email with attachment code ##
StringBuilder sbMailBody = new StringBuilder();
sbMailBody.Append(Server.MapPath("~/Content/fielname.html"));
var sendmail = new MailAddress("", "Akhil");
var receiver = new MailAddress("", "Buddy");
var subject = "Request for Asset!!";
var body = sbMailBody.ToString();
参数的格式似乎正确,该问题是由您的政策中的-Policy
引起的。
rewrite-uri
我用官方文档中的示例对其进行了测试,效果很好。
<rewrite-uri template="/stores/{Location}/slots?StartDate={StartDateTime}&AppointmentType={AppointmentType}" />
有关<rewrite-uri template="/put" />
的用法的更多详细信息,您可以参考此link。
答案 1 :(得分:0)
感谢王悦为我指出正确的方向,以下是解决方法:
我尝试直接通过门户网站添加XML,并收到此错误:
一个或多个字段包含不正确的值:元素错误 第4行第10栏的'rewrite-uri':仅在 原始网址模板可用于重写模板
结果证明我所指的参数(StartDateTime
和AppointmentType
)不是APIM中模板参数的一部分。
一旦我将它们添加为APIM中的模板参数,该命令就会起作用。
如果Powershell Commandlet返回与Azure门户相同的错误,而不仅仅是“ BadRequest”,则会很好。