在IIS服务器上安装和配置Web Deploy

前言 烂文警告,写下这篇文章只是希望这折腾的两个多小时更有一些意义,学到的东西可以转化。将来如果用来部署其他有用的程序之时会有帮助。 背景 省略吐槽Y姓老师500字,要部署一个WebService程序到我的服务器上。参考了一篇比较靠谱的文章。环境是WinServer19 DataCenter + IIS10 + VS2019 步骤 因为结果是试出来的,原理不懂无法展现正确的步骤了,可以参考上面的那篇文章。讲一下理论上的步骤和最后的截图。 我习惯直接开“控制面板”点“启用或关闭Windows功能”直接能跳到“添加角色和功能向导”,添加“Web服务器(IIS)”下面管理工具里的“管理服务”。(因为目标这个程序过于老旧(感谢同学借我抄作业),我添加了.NET 3.5 来获得 V2.0 的CLR) 那个 Web Platform Installer 加载就要一辈子,所以我们老老实实去下载Web Deploy,并安装。 自己的经历是这样的,大概先安装了Web Deploy后开启的管理服务。导致右键网站节点并没有部署(重启管理界面和重启服务器都没有出现),去控制面板更改才发现了它不是真正的完全安装,根据描述可以推测可能因为没有开启管理服务,所以没有安装这个组件。之后我重装了,选的手动,就把这些功能全装上了,根据功能描述,没有这个处理程序应该是不能远程部署的。(结论比较模糊,我懒得做实验了)你安装的时候注意一下这里就行。 装完上面两样之后,看图说话吧,IIS根节点下面找管理程序,如果没有开启就开启它,双击进入 端口自己看着改,只要是防火墙能通过的就行,如果默认的防火墙也能过那就默认的。然后启动服务。左边的IP地址,我改成服务器的公网IP是启动不了的,不懂,就选全部未分配了。 对你要部署的网站右键,如果没有部署图标(先关闭IIS管理器再开一下),建议看看上面提到的坑。记得修改URL,端口应该要和管理服务里的一样,我域名用IP,端口就如上图的4567,这些都是小问题,自己尝试一下就行。 VS里的操作,在项目上点击发布,导入设置,最后编辑设置测试一下能否连接,能链接之后发布就成。 尾巴 烂文完,下次一定认真写。

UCF Local Programming Contest 2012(Practice)2020/03/04 计蒜客

题目地址 https://www.jisuanke.com/contest/7332?view=challenges H. Ordered Numbers 就三个数的排序,原样和排序后的输出一遍。 B. How Old Are You Mr.String? 两个字符串比大小,只不过是先看z出现次数,再y出现次数,以此类推,具体看题,自己被getline坑,应该是他们行末的空格?<-这个坑回来再填 C. Clean Up the Powers that Be 题目说了因子已经是素了的,所以拿map加一下幂就好了,就是格式化得注意一下 G. Lifeform Detector <s> 有 三种模式 : a<t>b<s>  或者 c<s> 或者 空<t> 有两种模式: a<t>b<s> 或者 c<s> 将<t>,<s> 多带一带就会发现它其实是个括号匹配问题 c随意,a 左括号,b 右括号根据题解少考虑了ab不能连起来的问题 D. The Clock Algorithm 操作系统页面置换算法LRU变种Clock算法,就模拟,题目大致翻译可以参考。 操作系统设计中有一项技术叫做虚拟内存,允许计算机运行一个需要内存大于可用物理内存的程序,内存被分成页(pages),是固定大小的。程序申请访问一个没有被加载到内存的页,会出现缺页中断(page falut) (意味着每页的第一次访问必然出现缺页)如果程序需要访问另外一个内存可以容纳的页(假设它原本不在其中),之前加载的某一页必须被换出(swap),写到磁盘上,这个问题中我们讨论一种LRU的变体 时钟算法 Clock algo.这种算法这样工作:最初内存里n个 page cell 都是空的 (可以放page的格子,最多放n页的意思) 可以想象成一个大小为n的数组另外,时钟算法持有一个 “hand pointer” 最初指向 cell 1(第一个空格子),我们后面就管他叫指针 现在我们假设每一页还有一个flag,程序需要访问某一页的时候,他检查这页有没有在内存里(有没有在这些格子里),如果在内存里,这一页的flag变成new;如果没有在内存里,把这一页加载到下一个为空的cell里面,并设置新加载的这页的flag为new […]

使用SQLite保存数据

本文基本内容是对于官方文档Save data using SQLite的瞎JB翻译,以及优达学城安卓基础最后一门数据存储学习的记录。SQL过于底层,官方推荐Room库。 这篇文章里有两条时间线,一条是官网文档里的样例代码FeedReeder,还有一条是Udacity的课程项目Pet。 Step 1. Define a schema and contract Schema 是SQL数据库的原则之一,他定义了数据库如何组织数据。Schema也反映在创建数据库的SQL语句中。您可能会发现创建一个伴随类(称为 contract class)会很有帮助,该类系统且明确地指定了schema的层次布局。 一些常量定义了URI,表和列的名称,contract类正是这些常量的容器。您可以在同一包的所有其他类中使用contract类中定义的常量。这样一来,修改表结构时,您只需在contract类中更改常量的值即可。 组织contract类的一种好方法是将数据库的全局定义放在类的根级别。然后为每个表创建一个内部类。每个内部类枚举相应表的列。 第一步大概的意思就是你得确定数据库的架构,写一个Contract类来体现这种架构(这不是必须的,但是写了会方便)。举一个栗子,裸写一个SQL语句大概长这样 然后看文档里的案例,我们先写一个contract类,现在只需要知道这里定义了一些常量。 我们用上面那些常量再写一个SQL语句(一般会写在帮助类里面) 看上去便麻烦了,但是有智能提示啊!而且当你想修改某个字段时,只需要修改常量的值就可以。如果你不用常量,就得修改整个代码中所有用到这个字段的地方。毕竟我没那个神仙水平看得懂aaabbb000111ttuuvvbtn1234567 总结一下contract类的三个用处 1、帮助定义了(体现了)schema,在这里定义了常量,我们可以方便地找到这些常量 2、减少在SQL语句中的拼写错误 3、便于更新 接下来,阅读代码,回答以下问题 (这个是课程中的一道习题) 1.这个天气应用数据库里有多少张表? 2.WeatherEntry对应的表,在SQLite数据库中的表名是什么? 3.问题2那张表中有多少列?(不包括_ID和_COUNT) 4.有一个常量对应的字段是weather condition的short description,这个常量是什么? 2张表,58行位置表,90行天气表 weather,100行 10,103-127行 COLUMN_SHORT_DESC,在111行 下面是课程中Pet项目的一些操作 Step 2. Create a database using an SQL helper SQLiteOpenHelper类包含一组有用的API,用于管理数据库。当您使用此类获取对数据库的引用时,系统仅在需要时才执行创建和更新数据库的操作(可能花费很长时间运行),而不是在应用程序启动期间执行。您需要做的就是调用getWritableDatabase()或getReadableDatabase()。 要使用SQLiteOpenHelper,请创建一个重写onCreate()和onUpgrade()回调方法的子类。您可能还想实现onDowngrade()或onOpen()方法,但不是必需的。 类似的,实现PetDbHelper类 没有权限就先复制一个临时的类,用来展示信息,仔细阅读代码就知道怎么操作数据库了 Step 3. CRUD 3.1 Create […]