-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathREADME-MarkdownPadPreview.html
336 lines (317 loc) · 12.9 KB
/
README-MarkdownPadPreview.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>README.md</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body{
margin: 0 auto;
font-family: Georgia, Palatino, serif;
color: #444444;
line-height: 1;
max-width: 960px;
padding: 5px;
}
h1, h2, h3, h4 {
color: #111111;
font-weight: 400;
}
h1, h2, h3, h4, h5, p {
margin-bottom: 16px;
padding: 0;
}
h1 {
font-size: 28px;
}
h2 {
font-size: 22px;
margin: 20px 0 6px;
}
h3 {
font-size: 21px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
a {
color: #0099ff;
margin: 0;
padding: 0;
vertical-align: baseline;
}
a:hover {
text-decoration: none;
color: #ff6600;
}
a:visited {
color: purple;
}
ul, ol {
padding: 0;
margin: 0;
}
li {
line-height: 24px;
margin-left: 44px;
}
li ul, li ul {
margin-left: 24px;
}
p, ul, ol {
font-size: 14px;
line-height: 20px;
max-width: 540px;
}
pre {
padding: 0px 24px;
max-width: 800px;
white-space: pre-wrap;
}
code {
font-family: Consolas, Monaco, Andale Mono, monospace;
line-height: 1.5;
font-size: 13px;
}
aside {
display: block;
float: right;
width: 390px;
}
blockquote {
border-left:.5em solid #eee;
padding: 0 2em;
margin-left:0;
max-width: 476px;
}
blockquote cite {
font-size:14px;
line-height:20px;
color:#bfbfbf;
}
blockquote cite:before {
content: '\2014 \00A0';
}
blockquote p {
color: #666;
max-width: 460px;
}
hr {
width: 540px;
text-align: left;
margin: 0 auto 0 0;
color: #999;
}
button,
input,
select,
textarea {
font-size: 100%;
margin: 0;
vertical-align: baseline;
*vertical-align: middle;
}
button, input {
line-height: normal;
*overflow: visible;
}
button::-moz-focus-inner, input::-moz-focus-inner {
border: 0;
padding: 0;
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
cursor: pointer;
-webkit-appearance: button;
}
input[type=checkbox], input[type=radio] {
cursor: pointer;
}
/* override default chrome & firefox settings */
input:not([type="image"]), textarea {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
input[type="search"] {
-webkit-appearance: textfield;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
label,
input,
select,
textarea {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
font-weight: normal;
line-height: normal;
margin-bottom: 18px;
}
input[type=checkbox], input[type=radio] {
cursor: pointer;
margin-bottom: 0;
}
input[type=text],
input[type=password],
textarea,
select {
display: inline-block;
width: 210px;
padding: 4px;
font-size: 13px;
font-weight: normal;
line-height: 18px;
height: 18px;
color: #808080;
border: 1px solid #ccc;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
select, input[type=file] {
height: 27px;
line-height: 27px;
}
textarea {
height: auto;
}
/* grey out placeholders */
:-moz-placeholder {
color: #bfbfbf;
}
::-webkit-input-placeholder {
color: #bfbfbf;
}
input[type=text],
input[type=password],
select,
textarea {
-webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-moz-transition: border linear 0.2s, box-shadow linear 0.2s;
transition: border linear 0.2s, box-shadow linear 0.2s;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
}
input[type=text]:focus, input[type=password]:focus, textarea:focus {
outline: none;
border-color: rgba(82, 168, 236, 0.8);
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
}
/* buttons */
button {
display: inline-block;
padding: 4px 14px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 18px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
background-color: #0064cd;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
background-image: -o-linear-gradient(top, #049cdb, #0064cd);
background-image: linear-gradient(top, #049cdb, #0064cd);
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
border: 1px solid #004b9a;
border-bottom-color: #003f81;
-webkit-transition: 0.1s linear all;
-moz-transition: 0.1s linear all;
transition: 0.1s linear all;
border-color: #0064cd #0064cd #003f81;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
button:hover {
color: #fff;
background-position: 0 -15px;
text-decoration: none;
}
button:active {
-webkit-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
button::-moz-focus-inner {
padding: 0;
border: 0;
}
/* CSS stylesheet is based on Kevin Burke's Markdown.css project (http://kevinburke.bitbucket.org/markdowncss) */
</style>
</head>
<body>
<h1>SiteMonitR Sample</h1>
<p>The SiteMonitR sample demonstrates how a Windows Azure Cloud Service and a Windows Azure Web Site can use SignalR to communicate in an asynchronous communication. The SiteMonitR Cloud Service pings all of the sites in a list of sites stored in Windows Azure Table Storage. As each site's status is obtained, it is sent over to a SignalR Hub housed in a Windows Azure Web Site. When the SignalR Hub receives notifications for a site, the Web Site's user interface is updated in real-time. The result is a web site monitoring application that provides up-to-date status of web sites, giving site administrators real-time data on how their sites are performing. </p>
<h3>Prerequisites</h3>
<ul>
<li><a href="http://www.microsoft.com/visualstudio/en-us/products">Visual Studio 2012</a> </li>
<li><a href="http://www.windowsazure.com/en-us/develop/net/">Windows Azure SDK for .NET 1.7</a></li>
</ul>
<h3>Running the Sample Locally</h3>
<p>To get the site and cloud service running locally on a development workstation execute the following steps. </p>
<ol>
<li>Open Visual Studio 2012 as an Administrator (the Windows Azure SDK requires elevated priveleges to run the Windows Azure Compute and Storage emulators)</li>
<li>Open the SiteMonitR.sln solution</li>
<li>Press the F5 key to run the Cloud Service and Web Site simultaneously</li>
<li>Use the HTML form to add a URL (include the "http://" in the text box)</li>
<li>Observe as the site is monitored</li>
<li>Add any additional sites and observe how they are monitored in real time</li>
</ol>
<h3>Running the Sample in Windows Azure</h3>
<p>To get the site and cloud service running in Windows Azure, execute the following steps. A more comprehensive walk-through on setting up the entire application, see the <a href="https://github.com/WindowsAzure-Samples/SiteMonitR/blob/master/GettingStarted.md">Getting Started</a> document for this sample. </p>
<ol>
<li>Log in to the Windows Azure portal. </li>
<li>Create a new storage account to be used by the application.</li>
<li>Create a new Cloud Service to use as the background service for the SiteMonitR application.</li>
<li>Create a new Web Site to use to as the front-end web site for the SiteMonitR application.</li>
<li>Go into the dashboard for the new storage account you created and click the <strong>Manage Keys</strong> button at the bottom of the portal. Copy the storage account's key to the clipboard.</li>
<li>In Visual Studio 2012, expand the <strong>SiteMonitR.Azure</strong> project's <strong>Roles</strong> node. Double-click the <strong>SiteMonitR.WorkerRole</strong> node to open up the role's settings pane.</li>
<li>Select the <strong>Cloud</strong> option from the <strong>Service Configuration</strong> drop-down menu. </li>
<li>Click the ellipse button next to the <strong>SiteMonitRConnectionString</strong> setting. </li>
<li>Enter in the storage account name and primary access key copied from the portal.</li>
<li>Click the OK button.</li>
<li>Repeat the same steps to set the <strong>Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString</strong> setting.</li>
<li>Change the <strong>GUI_URL</strong> setting to reflect the URL of the Windows Azure Web Site you created using the Windows Azure portal. </li>
<li>Right-click the <strong>SiteMonitR.Azure</strong> project and select the <strong>Publish</strong> menu item from the context menu.</li>
<li>If you haven't yet imported your publish settings, click the <strong>Sign in to download credentials</strong> link in the publish dialog. </li>
<li>Your web browser will open up and browse to the Windows Azure publish profile download page. When the page tries to download the publish settings file, click the <strong>Save</strong> button to save the file to your local workstation.</li>
<li>Go back to Visual Studio 2012. Click the <strong>Import</strong> button in the publish dialog. Then, browse to the publish settings file you just downloaded and select it. </li>
<li>Click the <strong>Publish</strong> button to deploy the Cloud Service to Windows Azure.</li>
<li>The <strong>Windows Azure Activity Log</strong> window should open to display the Cloud Service's publishing process happening.</li>
<li>Go back to the Windows Azure portal. Click the web site you just created to load the site's dashboard page. </li>
<li>Once the site's dashboard loads in the browser, click the <strong>Download publish profile</strong> link.</li>
<li>When the browser tries to download the file, save it to your local workstation. </li>
<li>Right-click the <strong>SiteMonitR.Web</strong> project in Visual Studio 2012. Then select the <strong>Publish</strong> menu item from the context menu.</li>
<li>Click the <strong>Import</strong> button on the publish dialog. Then, find the web site publish settings file downloaded from the Windows Azure portal.</li>
<li>Click the <strong>Publish</strong> button in the dialog to publish the web site to Windows Azure.</li>
<li>Once the site has been published, go back to the site's dashboard page in the Windows Azure portal. Click the <strong>Configure</strong> tab. </li>
<li>Change the default document from <strong>Default.htm</strong> to <strong>Default.html</strong>. Then delete the other options from the list of default pages. Then, click the <strong>Save</strong> button to save the site configuration.</li>
<li>Click the <strong>Browse</strong> button at the bottom of the web site's dashboard to browse the site.</li>
<li>The site will open and present you with a simple form you can use to provide URL's of sites you'd like to monitor. </li>
<li>Type in a site URL and click the <strong>Add Site</strong> button. The site will be added to the list of sites you are monitoring. </li>
<li>Add in as many sites as you would like. All of the sites are monitored by the Cloud Service. Their status will update in real-time as the sites are hit by the service and reported in the web site. To remove a site, click the X button and the site will be removed from the list of sites monitored by the application. </li>
</ol>
<h3>Detailed Instructions</h3>
<p>For a more detailed walk-through on how to perform each of the individual tasks required to get this sample working in Windows Azure, see the sample's <a href="https://github.com/WindowsAzure-Samples/SiteMonitR/blob/master/GettingStarted.md">Getting Started</a> document in the repository containing the code for the sample. </p>
</body>
</html>
<!-- This document was created with MarkdownPad, the Markdown editor for Windows (http://markdownpad.com) -->